Mysql SQL查询语法帮助
我有一个问题,我想在哪里拉的用户谁没有作出选择,为这周的比赛,并向他们发送电子邮件提醒。我有以下查询,但它没有显示任何结果。它应该给我所有的11个用户,因为这场比赛将在下周举行Mysql SQL查询语法帮助,mysql,sql,Mysql,Sql,我有一个问题,我想在哪里拉的用户谁没有作出选择,为这周的比赛,并向他们发送电子邮件提醒。我有以下查询,但它没有显示任何结果。它应该给我所有的11个用户,因为这场比赛将在下周举行 SELECT T1.username, T2.* FROM (SELECT id, lead_id, form_id, MAX(case when field_number = 1 then value end) username, MAX(case when fi
SELECT
T1.username,
T2.*
FROM
(SELECT
id,
lead_id,
form_id,
MAX(case when field_number = 1 then value end) username,
MAX(case when field_number = 7 then value end) email,
MAX(case when field_number = 6 then value end) tournament_name,
MAX(case when field_number = 3 then value end) primary_golfer,
MAX(case when field_number = 4 then value end) backup_golfer,
MAX(case when field_number = 5 then value end) date,
MAX(case when field_number = 8 then value end) tournament_id
FROM `wp_rg_lead_detail`
GROUP BY lead_id
HAVING tournament_id = '4867aac6-186a-4508-9c57-69a468e1167f')T1
LEFT JOIN
(SELECT user_login, user_email FROM wp_users)T2 ON T1.username = T2.user_login
我认为你的逻辑一开始就错了。你可能需要从所有球员开始,然后将他们与锦标赛联系起来。使用LEFT JOIN和WHERE子句的值为NULL将查找没有锦标赛条目的用户
SELECT DISTINCT wp_users.*
FROM wp_users
LEFT JOIN (SELECT lead_id
, MAX(case when field_number = 7 then value end) AS email
, MAX(case when field_number = 8 then value end) AS tournament_id
FROM wp_rg_lead_detail
GROUP BY lead_id
) AS t1
ON t1.email = wp_users.user_email
AND t1.tournament_id = '4867aac6-186a-4508-9c57-69a468e1167f'
WHERE t1.lead_id IS NULL;
我建议您转到SQLFIDLE,加载您的模式,输入一些示例数据,并显示结果集所需的内容。如果您从左侧的锦标赛列表中获取锦标赛ID,它将生成我正在查找的结果我希望您在SQLFiddle中发布的电子邮件不是真实的电子邮件地址。哦,它们是真实的。好吧,只是更新了它谢谢您的帮助。非常感谢。