使用左连接有两个条件

时间:2017-04-06 03:25:12

标签: mysql

我正在尝试实现一个左连接查询,其中我有两个条件。

以下是我当前的查询,但它不显示正确的数据。我做得对吗?

  SELECT a.date_created, u.id, CASE WHEN a.status = 0 THEN 'Not Verified' ELSE 'Verified' END AS status 
  FROM affiliates a left join users u 
  ON  a.referral_code =u.ref_code OR  a.sub_referral_code = u.ref_code
  WHERE a.referral_code = 'Cx0mSU3axal8' OR  a.sub_referral_code = 'Cx0mSU3axal8';

Here is the output

This must be the result

感谢您对此的帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

我解决了我的问题。我只是对查询的条件部分感到困惑。 这是我所做的工作查询:

 SELECT a.date_created, u.id, CASE a.`status` WHEN 0 THEN 'Not Verified' ELSE 'Verified' END AS `status` 
 FROM affiliates a left join users u 
 ON  a.email = u.email
 WHERE a.referral_code = 'Cx0mSU3axal8' OR  a.sub_referral_code = 'Cx0mSU3axal8'; 

仍然感谢所有反馈。我很感激!

答案 1 :(得分:0)

您能详细说明您的意思是不显示正确的数据吗?如果您有运行上述查询的示例数据和示例输出以及需要显示哪些数据,我将不胜感激。

此外,如果你这样做会更加清洁

CASE a.`status` WHEN 0 THEN 'Not Verified' ELSE 'Verified' END AS `status`

在不查看数据,输出和所需输出的情况下,无法确定您的查询有什么问题。虽然您的查询告诉我您要从附属公司显示所有 date_created,其中referral_code或sub_referral_code =' Cx0mSU3axal8'用户表(左连接)中是否存在referralcode或sub_referral_code,并且来自用户的id(在附属表中未找到输出可以为null)ref_code =' Cx0mSU3axal8'。

我错过了什么吗?