当我写下如下的查询时......它写的是所有记录的组合。 查询中的错误是什么?
SELECT ven.vendor_code, add.address1
FROM vendor ven INNER JOIN employee emp
ON ven.emp_fk = emp.id
INNER JOIN address add
ON add.emp_name = emp.emp_name;
答案 0 :(得分:1)
使用内部联接,您可以在ON
子句中的两个表之间放置所有链接(关系)。
假设关系良好,您可以测试以下查询以查看它们是否真正组合了所有记录:
SELECT count(*)
from vendor ven
inner join employee emp on ven.emp_fk = emp.id
inner join address add on add.emp_name = emp.emp_name;
SELECT count(*)
add.address1
from vendor ven, employee emp, address add
如果两个查询都返回相同的结果(我怀疑),那么你真的有你说的话。
如果没有,正如我所假设的那样,也许你错过了一个关系或限制来过滤结果的数量。