Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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/8/mysql/72.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 如何选择未参与联接的记录_Mysql_Sql_Database_Select - Fatal编程技术网

Mysql 如何选择未参与联接的记录

Mysql 如何选择未参与联接的记录,mysql,sql,database,select,Mysql,Sql,Database,Select,我需要做一个查询,返回一些连接中不涉及的记录,粘贴相关的表和我编写的查询 表是CAR和SPACE,关系是N个空间中1辆车的一对多;在一个空间里有一辆车 CAR表记录: ........................................ car_id | mark | model | prize ........................................ 1 | fiat | 500 | 15000 2 | fi

我需要做一个查询,返回一些连接中不涉及的记录,粘贴相关的表和我编写的查询

表是CAR和SPACE,关系是N个空间中1辆车的一对多;在一个空间里有一辆车

CAR表记录:

........................................
car_id  | mark    | model   | prize
........................................
    1   | fiat    | 500     | 15000
    2   | fiat    | panda   | 8000
    3   | opel    | astra   | 20000
    4   | renault | clio    | 14000
    5   | opel    | corsa   | 12000
    6   | fiat    | panda   | 8000
    7   | fiat    | 500     | 15000
    8   | renault | capture | 16000
    9   | renault | clio    | 14000
    10  | fiat    | 500     | 15000
空间表记录主键由行、列和房间id标识。car_id是car表主键的外键:

..................................................
   row  | column  | room_id | dimension | car_id
..................................................
    1   | 1       | 1       | 100       | 1
    1   | 2       | 1       | 100       | 1
    1   | 3       | 1       | 100       | NULL
    2   | 1       | 1       | 100       | 1
    2   | 2       | 1       | 100       | 1
    2   | 3       | 1       | 100       | NULL
    3   | 1       | 1       | 100       | NULL
    3   | 2       | 1       | 100       | 6
    3   | 3       | 1       | 100       | 6
现在,我想从查询中得到的是选择所有不在任何空间中的汽车。我预计结果如下表所示:

........................................
car_id  | mark    | model   | prize
........................................
    2   | fiat    | panda   | 8000
    3   | opel    | astra   | 20000
    4   | renault | clio    | 14000
    5   | opel    | corsa   | 12000
    7   | fiat    | 500     | 15000
    8   | renault | capture | 16000
    9   | renault | clio    | 14000
    10  | fiat    | 500     | 15000
这是我编写的查询,但它没有返回我期望的结果

SELECT car.* FROM car,space WHERE car.car_id = space.car_id AND space.car_id IS NULL
我最近才开始学习数据库的逻辑,不幸的是我不太好,查询完全错误,但我不知道如何更正它。

您可以使用not in检查不在空间表中的车辆中的车辆id。因为在空格表的car_id列中有空值,所以where子句会将它们过滤掉

SELECT car.* FROM car
where car_id not in (select distinct car_id from space where car_id is not null)
或更好的使用不存在

您可以使用not in检查不在空间表中的车辆中的车辆id。因为在空格表的car_id列中有空值,所以where子句会将它们过滤掉

SELECT car.* FROM car
where car_id not in (select distinct car_id from space where car_id is not null)
或更好的使用不存在


您在where子句中使用了相互冲突的术语:

但是space.car\u id不能同时为null和匹配car.car\u id

您正在寻找左联接:

SELECT  *
FROM    car
LEFT JOIN
        space
ON      car.car_id = space.car_id
WHERE   space.car_id IS NULL

您在where子句中使用了相互冲突的术语:

但是space.car\u id不能同时为null和匹配car.car\u id

您正在寻找左联接:

SELECT  *
FROM    car
LEFT JOIN
        space
ON      car.car_id = space.car_id
WHERE   space.car_id IS NULL