Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用于匹配未链接数据的SQL查询_Mysql_Sql - Fatal编程技术网

Mysql 用于匹配未链接数据的SQL查询

Mysql 用于匹配未链接数据的SQL查询,mysql,sql,Mysql,Sql,假设我有三张桌子: TABLE A idA variable 1 Number of hats 2 Number of scarves 3 Number of mittens TABLE B idB name 1 Andy 2 Betty 3 Cedric 4 Daphne TABLE C idA idB value 1 1 15 1

假设我有三张桌子:

TABLE A

idA     variable
1       Number of hats
2       Number of scarves
3       Number of mittens


TABLE B

idB     name
1       Andy
2       Betty
3       Cedric
4       Daphne


TABLE C

idA     idB     value
1       1       15
1       2       2
1       3       89
2       1       10
2       3       3
2       4       1504
3       2       12
3       3       4
3       4       1
看看表,计算起来相对简单——我们知道她有多少顶帽子(2)和手套(12),但不知道她有多少条围巾。同样,对于达芙妮,我们知道她有多少条围巾(1504)和手套(1),但不知道帽子的数量

但是,我想要一个没有相关信息的字段列表——我会得到一个类似这样的返回结果(如果我要求Andy)


你知道我是怎么做到的吗?:)

可以使用联接关联两个表

在你的情况下,如果你问安迪,你想知道手套的数量,你将有:

SELECT name, value 
FROM B
INNER JOIN C on B.idB = C.idB
WHERE id.A = 3
回应您的评论,您可以尝试以下方式:

SELECT name, variable
FROM B
RIGHT JOIN C on B.idB = C.idB
RIGHT JOIN A on C.idA = A.idA
WHERE C.idA IS NULL

可以使用联接关联两个表

在你的情况下,如果你问安迪,你想知道手套的数量,你将有:

SELECT name, value 
FROM B
INNER JOIN C on B.idB = C.idB
WHERE id.A = 3
回应您的评论,您可以尝试以下方式:

SELECT name, variable
FROM B
RIGHT JOIN C on B.idB = C.idB
RIGHT JOIN A on C.idA = A.idA
WHERE C.idA IS NULL

可以使用联接关联两个表

在你的情况下,如果你问安迪,你想知道手套的数量,你将有:

SELECT name, value 
FROM B
INNER JOIN C on B.idB = C.idB
WHERE id.A = 3
回应您的评论,您可以尝试以下方式:

SELECT name, variable
FROM B
RIGHT JOIN C on B.idB = C.idB
RIGHT JOIN A on C.idA = A.idA
WHERE C.idA IS NULL

可以使用联接关联两个表

在你的情况下,如果你问安迪,你想知道手套的数量,你将有:

SELECT name, value 
FROM B
INNER JOIN C on B.idB = C.idB
WHERE id.A = 3
回应您的评论,您可以尝试以下方式:

SELECT name, variable
FROM B
RIGHT JOIN C on B.idB = C.idB
RIGHT JOIN A on C.idA = A.idA
WHERE C.idA IS NULL

以下查询工作正常:

SELECT B.name, A.variable
FROM B
CROSS JOIN A
LEFT JOIN C ON C.idA = A.idA AND C.idB = B.idB
WHERE C.value IS NULL
关键是
CROSS-JOIN
,它表示
JOIN
B
中的每条记录连接到
A
中的每条记录。完成后,您可以轻松检查
idA
idB
的哪些组合在
C
中没有相应的记录

结果:

NAME       UNKNOWN VARIABLE
-------------------------------
Andy       Number of mittens
Betty      Number of scarves
Daphne     Number of hats

以下查询工作正常:

SELECT B.name, A.variable
FROM B
CROSS JOIN A
LEFT JOIN C ON C.idA = A.idA AND C.idB = B.idB
WHERE C.value IS NULL
关键是
CROSS-JOIN
,它表示
JOIN
B
中的每条记录连接到
A
中的每条记录。完成后,您可以轻松检查
idA
idB
的哪些组合在
C
中没有相应的记录

结果:

NAME       UNKNOWN VARIABLE
-------------------------------
Andy       Number of mittens
Betty      Number of scarves
Daphne     Number of hats

以下查询工作正常:

SELECT B.name, A.variable
FROM B
CROSS JOIN A
LEFT JOIN C ON C.idA = A.idA AND C.idB = B.idB
WHERE C.value IS NULL
关键是
CROSS-JOIN
,它表示
JOIN
B
中的每条记录连接到
A
中的每条记录。完成后,您可以轻松检查
idA
idB
的哪些组合在
C
中没有相应的记录

结果:

NAME       UNKNOWN VARIABLE
-------------------------------
Andy       Number of mittens
Betty      Number of scarves
Daphne     Number of hats

以下查询工作正常:

SELECT B.name, A.variable
FROM B
CROSS JOIN A
LEFT JOIN C ON C.idA = A.idA AND C.idB = B.idB
WHERE C.value IS NULL
关键是
CROSS-JOIN
,它表示
JOIN
B
中的每条记录连接到
A
中的每条记录。完成后,您可以轻松检查
idA
idB
的哪些组合在
C
中没有相应的记录

结果:

NAME       UNKNOWN VARIABLE
-------------------------------
Andy       Number of mittens
Betty      Number of scarves
Daphne     Number of hats

谢谢你的回复:)但我不想知道手套的数量-我想知道我不知道安迪的手套数量(或者更准确地说,我不知道安迪的事情列表)谢谢你的回复:)但我不想知道手套的数量-我想知道我不知道安迪的手套数量(或者更准确地说,我不知道安迪的事情清单)谢谢你的回答:)但我不想知道手套的数量-我想知道我不知道安迪的手套数量(或者更准确地说,我不知道安迪的事情清单)谢谢你的回复:)但我不想知道手套的数量-我想知道我不知道安迪的手套数量(或者更准确地说,我不知道安迪的一系列事情)在费心自己解决这个问题之前,我在同一个SQLFiddle上测试了其他每个答案,但没有一个有效…向你致敬,先生-这正是我想要的:)在费心自己解决这个问题之前,我在同一把小提琴上测试了其他答案,但没有一个有效…向你致敬,先生-这正是我想要的:)在费心自己解决这个问题之前,我在同一把小提琴上测试了其他答案,但没有一个有效…向你致敬,先生-这正是我想要的:)在我自己费心解决这个问题之前,我用同一把SQLFiddle测试了其他答案,但没有一个有效…向你致敬,先生-这正是我想要的:)