我是一个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条件。
希望我很清楚。任何帮助将不胜感激!
答案 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。