我确信这只是一个打字错误,但是如何在PHPMyAdmin中正确地编写下面的查询呢?
SELECT DISTINCT `email_address` as tmp1
FROM `already_customer_checks`
WHERE `is_customer` = 0
AND NOT EXISTS (
SELECT *
FROM `already_customer_checks`
WHERE `email_address` = tmp1
AND `is_customer` = 1
)
错误:#1054 -where子句中的未知表字段'tmp 1'
背景:我要取得所有电子邮件地址,这些电子邮件地址中的'is_customer' = 0,而且在数据表中没有其他'is_customer' = 1的电子邮件地址。
非常感谢你提前!
1条答案
按热度按时间1sbrub3j1#
要使用子查询执行此操作,您需要将别名
tmp1
放在表上,而不是列上。然后:您还可以考虑@kmoser提出的注解,它 * 可能 * 更有效,但不够清晰。根据MySQL文档:
LEFT [OUTER] JOIN可能比等效的子查询更快,因为服务器可能能够更好地优化它-这并不是MySQL Server独有的事实。
但是,如果使用@kmoser提出的SQL,您可能不希望将
email_address
列的别名设置为tmp1
。