[英]MySQL INNER JOIN select only one row from first table if all leads active = 0 and primary_email = Yes in second table
我有两张桌子。 我想以一种方式加入他们,如果Leads_details表中的所有lead_id active = 0并且primary = Yes,则Leads表中只有一条记录。
表线索:
-------------
| id | name |
-------------
| 1 | abc1 |
| 2 | abc2 |
| 3 | abc3 |
| 4 | abc4 |
| 5 | abc5 |
-------------
表LeadsDetails:
--------------------------------------
| id | lead_id | active | primary_email
--------------------------------------
| 1 | 1 | 1 |Yes |
| 2 | 1 | 0 |NO |
| 3 | 2 | 0 |Yes |
| 4 | 3 | 1 |Yes |
| 5 | 4 | 0 |Yes |
| 6 | 5 | 1 |NO |
-------------------------------------
预期输出:
--------------
| id | name |
--------------
| 1 | abc2 |
| 2 | abc4 |
--------------
SELECT `Lead`.`id`, `Lead`.`name`, `Lead`.`unsubscribe`
FROM `leads` AS `Lead` inner JOIN `LeadsDetails` AS `LeadsDetails`
ON (`LeadsDetails`.`lead_id` = `Lead`.`id`)
WHERE `LeadsDetails`.`primary_email` = 'Yes' AND `LeadsDetails`.`active` = 0
您需要按属性分组
SELECT `Lead`.`id`, `Lead`.`name`, `Lead`.`unsubscribe`
FROM `leads` AS `Lead` inner JOIN `LeadsDetails` AS `LeadsDetails`
ON (`LeadsDetails`.`lead_id` = `Lead`.`id`)
WHERE `LeadsDetails`.`primary_email` = 'Yes' AND `LeadsDetails`.`active` = 0
GROUP BY lead.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.