0

当我编写如下查询时.. 它写了所有记录的组合。查询中有什么错误?

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;
4

1 回答 1

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

如果两个查询都返回相同的结果(我对此表示怀疑),那么您确实有您所说的。

如果不是,正如我所假设的那样,您可能缺少过滤结果数量的关系或限制。

于 2012-06-27T12:40:16.940 回答