我有两个相同的表,例如:
table1
col1 col2 col3 col4 col5
table2
col1 col2 col3 col4 col5
我想比较表1和2,并在2个表之间找到相同的行(col1,col2,col3,col4等..)。
我认为我们需要使用vtable或类似的东西..
我试过
SELECT * FROM TABLE1 WHERE COL1, COL2, COL3, COL4 IN
(SELECT COL1, COL2, COL3, COL4 FROM TABLE2);
它不起作用.. 请帮助:)
答案 0 :(得分:3)
SELECT *
FROM TABLE1 t
WHERE EXISTS
( SELECT *
FROM TABLE2 tt
WHERE (COL1, COL2, COL3, COL4)
= (t.COL1, t.COL2, t.COL3, t.COL4)
)
;
答案 1 :(得分:1)
Oracle语法,我确信它在MySql中几乎相同:
SELECT *
FROM TABLE1, TABLE2
WHERE TABLE1.COL1 = TABLE2.COL1
AND TABLE1.COL2 = TABLE2.COL2
AND TABLE1.COL3 = TABLE2.COL3
AND TABLE1.COL4 = TABLE2.COL4
可能会有更优雅和聪明的方式,但这会找到你的副本。
答案 2 :(得分:1)
怎么样:
SELECT table1.* FROM table1
INNER JOIN table1 ON table2.col1 = table1.col1
WHERE table1.col2 = table2.col2 AND table1.col3 = table2.col3
AND table1.col4 = table2.col4 AND table1.col5 = table2.col5