在两个表上使用相交?

时间:2013-07-04 07:15:52

标签: mysql sql sql-server database ibm-midrange

我试图找到所有四个表共有的行。 我试过用这个:

SELECT * 
FROM TABLE1 
INTERSECT
SELECT *
FROM TABLE2
INTERSECT
SELECT *
FROM TABLE3
 INTERSECT
SELECT *
FROM TABLE4;    

但没有结果,我知道有些行符合这个要求。因为使用union而不是添加“order by”,我会看到来自不同表的四行具有相同的描述。

1 个答案:

答案 0 :(得分:5)

在您想要的字段上使用INNER JOIN条件 例如:

SELECT 
    t1.* 
FROM 
    TABLE1 t1
INNER JOIN TABLE2 t2
    ON t1.field1 = t2.field1
    AND t1.field2 = t2.field2
    ...
INNER JOIN TABLE2 t3
    ON t1.field1 = t3.field1
    AND t1.field2 = t3.field2
...
相关问题