MySQL-左加入而不是
|
我试图避免子查询,因为它们通常比适当的连接具有更低的性能。
这是我当前无法正常工作的查询:
SELECT
a.`email_list_id`, a.`category_id`, a.`name`
FROM
`email_lists`AS a
LEFT JOIN `email_autoresponders` AS b
ON ( a.`website_id` = b.`website_id` )
WHERE
a.`website_id` = [...]
AND a.`category_id` <> 0
AND a.`email_list_id` <> b.`email_list_id`
GROUP BY
a.`email_list_id`
ORDER BY a.`name`
该查询有效:
SELECT
`email_list_id`, `category_id`, `name`
FROM
`email_lists`
WHERE
`website_id` = [...]
AND `category_id` <> 0
AND `email_list_id` NOT IN (
SELECT
`email_list_id`
FROM
`email_autoresponders`
WHERE `website_id` = [...]
)
GROUP BY
`email_list_id`
ORDER BY
`name`
有什么办法可以通过左联接做到这一点?我尝试了许多不同的选择。
没有找到相关结果
已邀请:
2 个回复
需复
赣借
尽管我不确定您提到的方案是否需要进行大量优化,但这是使用联接而不是子查询的一种方法。