0

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

3 回答 3

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'
于 2012-06-22T04:12:34.960 回答
0

Free Hand,但基本上我只是加入确认表以仅获取确认值为 1 的 a 行,然后执行子选择以获取所有 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)
于 2012-06-22T04:00:27.397 回答
0

我会在下面做:使用内部连接查找具有 tblA 和 tblB 的匹配记录 id。然后使用 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'
于 2012-06-22T04:05:30.557 回答