2016-02-04 133 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'