不必編寫返回的姓名,城市,而這坐落在一個獨特的城市和國家的每個供應商的狀態的select語句獨特的效果。我看到了幾個類似的線程,但沒有給出的答案有助於某種原因。我的代碼仍然無法返回適當數量的結果:問題嘗試選擇在MySQL子查詢
編寫一條select語句,該語句返回位於獨特城市和州中的每個供應商的名稱,城市和州。它需要返回38行。
/*problem 6*/
SELECT
vendor_name, vendor_city, vendor_state
FROM
vendors
WHERE
vendor_city || vendor_state NOT IN (SELECT distinct
vendor_city || vendor_state
FROM
vendors
GROUP BY vendor_city, vendor_state having count(*)>1)
ORDER BY vendor_state , vendor_city;
是你的子查詢返回正確的數據? –
任何一組'GROUP BY'列都將是唯一的,所以'DISTINCT'是多餘的。雖然在一個「IN」條款中,重複不會產生任何影響。串聯('||')會減慢比較 - 你應該能夠比較元組:'WHERE(vendor_city,vendor_state)NOT IN(...)'。除了像teju提到的子查詢檢查之外,你會得到什麼結果?行數太多,行數太少?如果您翻轉您訂購的那一列,會發生什麼? –
在MySQL中,「||」運算符是「OR」的同義詞,而不是字符串連接。如果我們想要字符串連接,我們使用'CONCAT()'函數。 (注意連接的邊緣情況,因爲狀態和城市的連接在兩種情況下產生相同的值,所以可能匹配狀態='aa'city ='a'且狀態='a'city ='aa'。 – spencer7593