一个不在声明中的双变量?

时间:2011-08-18 20:30:07

标签: left-join

我需要查看两个共享两个变量的表,并从一个表中获取另一个表中没有匹配数据的数据列表。示例:

表A

的XName 日期 地点 xAmount

表B

yName 日期 地点 yAmount

我需要能够编写一个查询表A并查找表B中没有相应条目的条目的查询。如果它是一个变量问题,我可以不在语句中使用但我想不出一个用两个变量做到这一点的方法。左连接也看起来不像你能做到的那样。由于我们正在谈论成千上万的日期和数百个地名,因此按特定日期或地点名称查看它是行不通的。

提前感谢任何可以提供帮助的人。

3 个答案:

答案 0 :(得分:0)

 SELECT TableA.Date,
        TableA.Place,
        TableA.xName,
        TableA.xAmount,
        TableB.yName,
        TableB.yAmount
 FROM TableA

 LEFT OUTER JOIN TableB
 ON TableA.Date = TableB.Date
 AND TableA.Place = TableB.Place

 WHERE TableB.yName IS NULL
 OR TableB.yAmount IS NULL

答案 1 :(得分:0)

SELECT * FROM A WHERE NOT EXISTS 
(SELECT 1 FROM B 
 WHERE A.xName = B.yName AND A.Date = B.Date AND A.Place = B.Place AND A.xAmount = B.yAmount)

答案 2 :(得分:0)

ORACLE中的

select xName , xAmount from tableA
MINUS
select yName , yAmount from tableB