2016-02-04 85 views
0

請考慮以下表格架構:company(company-name, city。假設這些公司可能位於幾個城市。查找位於「X公司」所在城市的所有公司 。使用子查詢進行選擇

這是否是正確的SQL代碼:

select company name from company 
where city in (select city from company where company-name = 'Company X') 

這是一樣的:

select s.company-name 
    from company s 
    where not exists 
    ((select city from company where company-name = 'Small Bank 
    Corporation') 
    except 
    (select city from company t where s.company-name = t.company-name)) 
+1

您可以嘗試執行查詢自己看看結果是正確的,它可能不會殺了你。 – potashin

+0

子查詢是要求的一部分嗎? – Strawberry

+0

公司必須在'X公司'所在的每個城市嗎?或只是任何城市? – JamieD77

回答

-1

如果你的領域被稱爲 「公司名稱」 查詢應該是

select "company-name" 
from company 
where city in (select city from company where "company-name" = 'Company X') 

如果公司的名稱知道它是唯一的,則可以將「in」運算符替換爲「=」

+0

雙引號用於字符串,而不是列名。在MySQL中,你可以使用包含特殊字符的列名反引號。 – Barmar

+0

雙引號在mySQL中也適用!嘗試一下! – llouk

+0

我juse試着在我的數據庫中選擇* FROM myTable WHERE「username」='barmar'',但沒有找到該行。 – Barmar

0

這可能是更好的使用聯接

SELECT DISTINCT c1.company_name 
FROM company AS c1 
JOIN company AS c2 ON c1.city = c2.city 
WHERE c2.company_name = 'Company X'