MySQL的已存在错误条款
我需要帮助在MySQL EXISTS子句MySQL的已存在错误条款
原始表是第一张图
第二PIC的预期输出
第三张照片目前是我的输出
我当前的代码是SELECT CustomerName, Address FROM customers_tbl WHERE EXISTS(SELECT * FROM customers_tbl WHERE (Country = 'Mexico'));
SELECT CustomerName, Address FROM customers_tbl Q WHERE EXISTS
(SELECT * FROM customers_tbl SQ WHERE
SQ.Country = Q.Country AND SQ.Country = 'Mexico');
这里是我的解释: 在有问题的SQL,子查询送花儿给人有一组的结果,如果表customers_tbl
包含Country: Mexico
。子查询不依赖主查询。所以在那个SQL中,EXISTS
条件总是工作TRUE。因此,所有数据将显示为输出。 在我的回答中,我在主查询&子查询中使用了别名表。并且还使用了主要查询&子之间的连接。在这种情况下,子查询中的每个结果都依赖于main中的值。所以子查询只能获取相应的结果& EXISTS
正常工作。
谢谢,你的代码工作,如果我可能问你使用别名? –
不需要删除评论:)。我问的原因是,总是为了回答,我得到了 - 甚至它的帮助。 – Sinto
SELECT CustomerName, Address
FROM customers_tbl
WHERE EXISTS(SELECT Country FROM customers_tbl WHERE (Country = 'Mexico'));
试试这一个。
这是我需要的基本的mysql命令,但我需要使用EXISTS子句 –
@JohnAniez我改进了我的回答 –
它仍然显示所有名称 –
你知道EXIST或NOT EXIST条款吗? 我认为你不知道EXIST或NOT EXIST子句是否正确,否则你不会问上面的问题。
EXISTS或NOT EXISTS返回true或false如果subquery
分别返回任何行或不返回。
而原始数据是?和它背后的逻辑? – Jens
试图做'SELECT客户名,地址FROM customers_tbl WHERE国家='墨西哥';'? – Sinto
此外,如果您希望结果有订单,则应添加Order By子句。 – Learning