MySQL的已存在错误条款

问题描述:

enter image description here我需要帮助在MySQL EXISTS子句MySQL的已存在错误条款

原始表是第一张图

enter image description here

第二PIC的预期输出

enter image description here

第三张照片目前是我的输出

我当前的代码是SELECT CustomerName, Address FROM customers_tbl WHERE EXISTS(SELECT * FROM customers_tbl WHERE (Country = 'Mexico'));

+1

而原始数据是?和它背后的逻辑? – Jens

+0

试图做'SELECT客户名,地址FROM customers_tbl WHERE国家='墨西哥';'? – Sinto

+0

此外,如果您希望结果有订单,则应添加Order By子句。 – Learning

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正常工作。

+0

谢谢,你的代码工作,如果我可能问你使用别名? –

+0

不需要删除评论:)。我问的原因是,总是为了回答,我得到了 - 甚至它的帮助。 – Sinto

SELECT CustomerName, Address 
FROM customers_tbl 
WHERE EXISTS(SELECT Country FROM customers_tbl WHERE (Country = 'Mexico')); 

试试这一个。

+0

这是我需要的基本的mysql命令,但我需要使用EXISTS子句 –

+0

@JohnAniez我改进了我的回答 –

+0

它仍然显示所有名称 –

你知道EXIST或NOT EXIST条款吗? 我认为你不知道EXIST或NOT EXIST子句是否正确,否则你不会问上面的问题。

EXISTS或NOT EXISTS返回true或false如果subquery分别返回任何行或不返回。

请阅读Subqueries with EXISTS or NOT EXISTS