【发布时间】:2018-09-05 16:45:12
【问题描述】:
我有 2 个名为 'OK' 和 'TX' 的数据库,它们具有名为 'E_Model' 的同一个表和如下列: 'Product_ID'、'Description'、'Warranty'和'Category' 我想拥有两个表都有的产品 ID 列表,并且想同时知道所有其他列的差异。
期望的结果应该是这样的:
**'*Database' 'Product_ID' , 'Description', 'Warranty' 'Category'***
OK LB9456 COFFEE 436 NULL 10
TX LB9456 TOASTER 956 1 12
OK QR3300 APPLE 31 3 15
TX QR3300 ORANGE 45 5 20
我尝试运行以下查询:
SELECT Product_ID
FROM OKSV..E_MODEL
INTERSECT
SELECT Product_ID
FROM TXSV..E_MODEL
union all
SELECT Product_ID
FROM TXSV..E_MODEL
INTERSECT
SELECT Product_ID
FROM OKSV..E_MODEL
我确实在不同数据库的两个表中获得了类似 Product_ID 的列表。但是当我使用以下查询时:
SELECT Product_ID, Description, Warranty, Category
FROM OKSV..E_MODEL
INTERSECT
SELECT Product_ID,Description, Warranty, Category
FROM TXSV..E_MODEL
union all
SELECT Product_ID,Description, Warranty, Category
FROM TXSV..E_MODEL
INTERSECT
SELECT Product_ID
FROM OKSV..E_MODEL
它只是向我显示了一个不同的列表。基本上,我想知道两个表中类似产品 ID 的描述、类别和保修的差异。 我这样做是为了清理数据。我是新手,请帮忙,因为我现在正在一件一件地做这件事,这将花费很多时间。
【问题讨论】:
-
我重写了我的答案以符合您明确的规范。
-
我很感激,但没有奏效!
-
怎么没用?它是否给出了错误,或者返回的数据与您的预期不符?可以帮助您获得更好答案的一件事是充分说明当有人提供无效的建议时某事是如何失败的。样本数据也很有帮助(不一定是实时数据)。祝你好运,得到有用的答案。
-
另外,StackOverflow 建议您阅读How to ask for help
-
Msg 102,级别 15,状态 1,第 15 行 'MisMatches' 附近的语法不正确。消息 156,级别 15,状态 1,第 49 行关键字“数据库”附近的语法不正确。
标签: sql-server sql-server-2008