我有两张桌子。我想与两个表进行比较并删除重复的值。但首先我需要查找'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
答案 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'