当我编写如下查询时.. 它写了所有记录的组合。查询中有什么错误?
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;
当我编写如下查询时.. 它写了所有记录的组合。查询中有什么错误?
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;
使用内连接,您必须将两个表之间的所有链接(关系)放在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
如果两个查询都返回相同的结果(我对此表示怀疑),那么您确实有您所说的。
如果不是,正如我所假设的那样,您可能缺少过滤结果数量的关系或限制。