最终结果是我想从查询中创建一个文件,然后我可以用它来导入另一个dB。我有产品编号(ITEM_NO),可以有两个相关的条形码(BARCOD)。我想确保TABLE_2提供的条形码不在TABLE_1中(因为有时会有)
TABLE_1(现有条形码)
ITEM_NO | BARCOD
-----------------
001 | A
001 | B
002 | C
003 | E
003 | F
004 | G
005 | I
TABLE_2(新条形码)
ITEM_NO | BARCOD
-----------------
001 | B
002 | D
003 | F
004 | H
005 | J
所以我想要的输出文件是
ITEM_NO | BARCOD
-----------------
002 | D
004 | H
005 | J
我的起点是:
SELECT TABLE_1.ITEM_NO, TABLE_2.ITEM_NO, TABLE_1.BARCOD, TABLE_2.BARCOD
FROM TABLE_2 INNER JOIN TABLE_1 ON TABLE_2.ITEM_NO=TABLE_1.ITEM_NO
WHERE TABLE_1.BARCOD<>TABLE_2.BARCOD
ORDER BY TABLE_1.ITEM_NO
但这不起作用,因为它将第1行表1与第1行表2进行比较,发现BARCOD不同并将其包含在查询中...误报。我想我想要的是一种从子查询创建字符串的方法,比如STRING_TEMP [1] = [A,B](请原谅我如何显示这个,不知道正确的约定是什么),所以a字符串基于TABLE_1.ITEM_NO的值,然后检查该字符串是否包含TABLE_2.BARCOD的值,其中TABLE_2.ITEM = TABLE_1.ITEM
希望这是足够的信息来描绘我想要做的事情......感谢adnavce提供的任何帮助,
Jordie Fike
www.kittyhawk.com
答案 0 :(得分:0)
根据我的理解,你想要:
SELECT *
FROM TABLE_1
WHERE ITEM_NO IS NOT IN (SELECT DISTINCT ITEM_NO FROM TABLE_2)
ORDER BY ITEM_NO;
这将选择TABLE_1
中尚未包含的所有数据{/ 1}}。
如果您希望TABLE_2
中的所有数据都不在TABLE_2
中,只需切换语句:
TABLE_1
我希望有所帮助,也就是你所追求的目标。
答案 1 :(得分:0)
看起来你想要
SELECT ITEM_NO, BARCOD
FROM TABLE_2
WHERE BARCOD NOT IN
(SELECT BARCOD FROM TABLE_1)