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)
但它对我不起作用.有什么建议吗?亲切的问候!
如果你想要'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)
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |