SQL加入问题

时间:2011-07-25 22:42:40

标签: sql

我是一个SQL新手,所以请原谅无知:)

基本上,我想知道什么是'加入'表A和B的好方法,其中我只想检查A中的某些情况是否在B中。事实是,并非A中的所有条目都需要在B中有比赛,只有几个。例如,表A

merchant_id | tablet_id | address
33232       | 1         | 83 abs
94732       | 2         | 92 bcu
47373       | 3         | dkid
48238       | 3         | kdid

已与查询中的其他表连接。在同一个查询中,我想实现一个条件,其中如果B中的tablet_id与A的匹配,则忽略这些情况。

merchant | tablet_id  | incentive?
33232    | 1          | Yes
67382    | 2          | No
像我说的那样,A和B只有几个共同的案例。我在A& A之间尝试了一个JOIN查询。 B并且没有返回任何内容,因为如果A和A之间没有交叉值,则可能无法进行连接。 B.我只是想实现IF条件。

希望我很清楚。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:4)

SELECT * FROM `A` WHERE `tablet_id` NOT IN (SELECT `tablet_id` FROM `B`)

答案 1 :(得分:1)

SELECT 
   *
FROM 
   A LEFT JOIN B 
     ON A.tablet_id = B.tablet_id 
WHERE 
   B.tablet_id is null

答案 2 :(得分:0)

您可能正在寻找OUTER JOIN

SELECT *
FROM TableA
LEFT OUTER JOIN TableB ON TableA.tablet_id = TableB.tabletID

这将返回表A中的所有行,并从表B中连接符合ON子句中条件的行。如果表B中对于表A中的行没有行,则结果中的表B列值将为NULL。