INNER JOIN对我不起作用

use*_*001 0 mysql sql select join left-join

我正在尝试让我的SQL查询工作而且我失败了,所以我决定要求更多有经验和熟悉SQL人员,因为我不是这样.

我拥有:我的数据库中的2个表,一个是"DEV"表,其中包含:id, lat, lon, login, password第二个是"TASK"表,其中包含:id, lat, lon, address, id_dev.Id_dev是表"DEV"的外键.

我要做的是:进行查询以获取所有没有分配任务的DEV(在给定dev.id的表"task"中没有记录)并获得另一个具有任务的DEV列表.

我希望他们分开.我尝试了一些教程:

SELECT * FROM `dev` INNER JOIN 'task' ON dev.id=task.id_dev ORDER BY dev.id;
Run Code Online (Sandbox Code Playgroud)

但它对我不起作用.有什么建议吗?亲切的问候!

Row*_*haw 6

如果你想要'dev'记录没有'task'你不应该使用,INNER JOIN因为它会带回集合的交集.

一种选择是使用a LEFT JOIN,所以类似于:

SELECT      dev.* 

FROM        dev

LEFT JOIN   task
    ON      dev.id=task.id_dev 

WHERE       task.id_dev IS NULL

ORDER BY    dev.id;
Run Code Online (Sandbox Code Playgroud)