Changes

Line 341: Line 341:     
<source lang="SQL">
 
<source lang="SQL">
--- Main Joomla! users table (original query in script)
+
 
SELECT id, username, email, registerDate FROM gvrsi_users
+
--- Main Joomla! users table
 +
--- (original query in script)
 +
SELECT
 +
  id,
 +
  username,
 +
  email,
 +
  registerDate,
 +
  signature,
 +
  location,
 +
  websiteurl,
 +
  birthdate,
 +
  avatar,
 +
  moderator
 +
FROM gvrsi_users
 +
INNER JOIN gvrsi_kunena_users ON gvrsi_kunena_users.userid = gvrsi_users.id
 +
 
 
UNION
 
UNION
 +
 
--- Query to fetch users not present in main Joomla! table that have an email address defined
 
--- Query to fetch users not present in main Joomla! table that have an email address defined
--- Registration date does not exist so we put that to UNIX EPOCH (01/01/1970, 0h00)
+
--- Registration date does not exist so we put that most old date (first posted message)
SELECT DISTINCT
+
SELECT
userid AS id,
+
  userid,
name AS username,
+
  name,
email,
+
  SUBSTRING_INDEX(GROUP_CONCAT(email), ',',1) AS email,
STR_TO_DATE('01,01,1970,12,0','%d,%m,%Y,%h,%i') AS registerDate
+
  FROM_UNIXTIME(MIN(time)) AS registerDate,
 +
  NULL AS signature,
 +
  NULL AS location,
 +
  NULL AS website,
 +
  NULL AS birthdate,
 +
  NULL AS avatar,
 +
  0 AS moderator
 
FROM gvrsi_kunena_messages  
 
FROM gvrsi_kunena_messages  
 
WHERE userid NOT IN(SELECT id FROM gvrsi_users)
 
WHERE userid NOT IN(SELECT id FROM gvrsi_users)
AND email IS NOT NULL AND email <> ''
+
  AND email IS NOT NULL AND email <> ''
GROUP BY id, username
+
GROUP BY userid, name
 +
 
 
UNION
 
UNION
 +
 
--- Query to fetch users not present in main Joomla! table that does not have an email address defined
 
--- Query to fetch users not present in main Joomla! table that does not have an email address defined
 
--- Email address is set to no_email to allow Discourse account creation
 
--- Email address is set to no_email to allow Discourse account creation
--- Registration date does not exist so we put that to UNIX EPOCH (01/01/1970, 0h00)
+
--- Registration date does not exist so we put that most old date (first posted message)
SELECT DISTINCT
+
SELECT  
userid AS id,
+
  userid,
name AS username,
+
  name,
'no_email' AS email,
+
  'no_email' AS email,
STR_TO_DATE('01,01,1970,12,0','%d,%m,%Y,%h,%i') AS registerDate
+
  FROM_UNIXTIME(MIN(time)) AS registerDate,
 +
  NULL AS signature,
 +
  NULL AS location,
 +
  NULL AS website,
 +
  NULL AS birthdate,
 +
  NULL AS avatar,
 +
  0 AS moderator
 
FROM gvrsi_kunena_messages  
 
FROM gvrsi_kunena_messages  
 
WHERE userid NOT IN(SELECT id FROM gvrsi_users)
 
WHERE userid NOT IN(SELECT id FROM gvrsi_users)
AND (email IS NULL OR email = '')
+
  AND (email IS NULL OR email = '')
AND userid NOT IN(
+
  AND userid NOT IN(
SELECT DISTINCT userid AS id
+
    SELECT DISTINCT userid
FROM gvrsi_kunena_messages  
+
    FROM gvrsi_kunena_messages  
WHERE userid NOT IN(SELECT id FROM gvrsi_users)
+
    WHERE userid NOT IN(SELECT id FROM gvrsi_users)
AND email IS NOT NULL AND email <> ''
+
      AND email IS NOT NULL AND email <> ''
GROUP BY id
+
    GROUP BY userid
)
+
  )
GROUP BY id, username
+
GROUP BY userid, name
 
ORDER BY id;
 
ORDER BY id;
 
</source>
 
</source>
      
===PostgreSQL query to fix quote blocks===
 
===PostgreSQL query to fix quote blocks===