2013-05-05 42 views
0

我有三个表A(主),B(主)和C(事务)。 A.id和B.id的组合存在于C中。 我想要表A中A.id和B.id的组合不存在的A的数据。MySQL两个独立的表,其连接不存在于第三个表

我尝试了以下,但没有得到选择行。从A,B,C

SELECT * A.其中A.id!= C.id和B.id!= C.id

我不是善于创造查询。

有人可以为此形成一个查询吗?

+0

您可以加入你试过吗?这可能会让人们更愿意提供帮助。 – 11684 2013-05-05 13:46:02

+0

编辑问题 – 2013-05-05 13:48:38

+1

您可以添加表格定义吗? – 2013-05-05 13:51:14

回答

0
SELECT * 
FROM A 
WHERE A.id NOT IN (
    SELECT Aid FROM C) 

你的问题是有点奇怪的是,这个查询选择A的所有ID用其不在表C.

+0

所以,我不需要使用表B? – 2013-05-05 13:51:16

+0

我假设你在表C中有2列,一个是A的ID,另一个是B的ID。所以如果表C中没有出现A的Id,那么它显然没有连接到ID的B – 2013-05-05 13:52:40

+0

是的。你是对的。我想我自己很困惑。 – 2013-05-05 14:03:34

0
SELECT A.*, B.* 
FROM A , B 
WHERE A.id = B.id AND A.id NOT IN (SELECT Aid FROM C) AND B.id NOT IN (SELECT Bid FROM C) 
+0

我认为你不了解这个问题。只需要A的数据。因此,表B在您的查询中不需要 – 2013-05-05 13:59:25

0

SELECT * FROM A,C LEFT JOIN B第B .ID = A.id LEFT JOIN B开B.id = C.id WHERE A.id = C.id和B.id IS NULL

+0

格式正确。注意将其添加为代码并添加几个字? – 2015-07-11 14:24:26

相关问题