2017-08-04 48 views
-3

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

回答

0
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

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

試試這一個。

+0

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

+0

@JohnAniez我改進了我的回答 –

+0

它仍然顯示所有名稱 –

-1

你知道EXIST或NOT EXIST條款嗎? 我認爲你不知道EXIST或NOT EXIST子句是否正確,否則你不會問上面的問題。

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

請閱讀Subqueries with EXISTS or NOT EXISTS