SQL:消除两个表中的重复行

时间:2012-06-22 03:47:50

标签: php mysql sql

我有两张桌子。我想与两个表进行比较并删除重复的值。但首先我需要查找'A-Confirm-tbl',如果id确认,则只从表格中删除它。我写了一个简单的SQL代码,但它没有用。

SELECT A.id
FROM A
FULL JOIN B
ON A.id = B.id
AND A-Confirm-tbl.id='1'
GROUP BY A.id

A   B
1   2
5   1
2   5
3   4
10  8
20  15

A-Confirm-tbl
id  confirm
1   1
5   0
2   1
3   0
10  0
20  0

3 个答案:

答案 0 :(得分:0)

Free Hand,但实质上我只是加入confirm表来获取一个确认值为1的行,然后进行子选择以获取所有B ID,并且只从A中选择具有该ID的行子选择。

SELECT A.id 
FROM A 
JOIN A-Confim-tbl aconf 
  ON A.id = aconf.id AND aconf.confirm = 1 
WHERE a.id IN (SELECT B.id FROM B)

答案 1 :(得分:0)

我会在下面做: 使用内部联接查找匹配记录id与tblA和tblB。然后使用A-Confirm-tbl加入记录,并仅使用confirm = 1过滤记录。

SELECT * from tblA a 
INNER JOIN tblB b ON a.id=b.id 
JOIN A-Confim-tbl c on a.id=c.id 
WHERE c.confirm='1'

答案 2 :(得分:0)

DELETE first_table_name
FROM first_table_name
INNER JOIN second_table_name
      ON second_table_name.ID = first_table_name.ID
join A-Confim-tbl on first_table_name.ID=A-Confim-tbl.Id
where A-Confim-tbl.confirm='1'