所以基本上我有2个表,一个是客户,另一个是部门,它们都有一个共同的属性,'分支'。
我试图获取department_manager(来自department表) 和customer_name(来自客户表)
所以我的查询是
SELECT department_manager,customername FROM customer,department WHERE
customer.branch=department.branch;
这给了我理想的解决方案。
但后来我想到使用子查询获得相同的结果
SELECT department_manager,customername FROM customer,department WHERE
customer.branch IN ( select branch from department);
这并没有给我第一个给我的理想解决方案。如果它们涉及公共属性即分支,我基本上想要加入这两个表。
答案 0 :(得分:2)
你完全错了。在第二个查询中,您有两个对department
的引用。他们是独立的。
编写查询的正确方法是使用显式JOIN
:
SELECT d.department_manager, c.customername
FROM customer c JOIN
department d
ON c.branch = d.branch;
简单规则:从不在FROM
子句中使用逗号。
答案 1 :(得分:0)
如果你特别喜欢使用子查询..
{{1}}