Mysql 内部连接对我不起作用

Mysql 内部连接对我不起作用,mysql,sql,select,join,left-join,Mysql,Sql,Select,Join,Left Join,我试图让我的SQL查询工作,但我失败了,所以我决定找更有经验和熟悉SQL的人,因为我不是这样 我的数据库中有两个表,一个是“DEV”表,其中包含:id、lat、lon、login、password第二个是“TASK”表,其中包含:id、lat、lon、address、id\u DEV。Id_dev是表“dev”的外键 我试图做的是:进行查询以获取所有未分配任务的开发人员(表“task”中没有具有给定dev.id的记录),并获取另一个具有任务的开发人员列表 我要他们分开。我尝试了教程中的一些内容:

我试图让我的SQL查询工作,但我失败了,所以我决定找更有经验和熟悉SQL的人,因为我不是这样

我的数据库中有两个表,一个是“DEV”表,其中包含:
id、lat、lon、login、password
第二个是“TASK”表,其中包含:
id、lat、lon、address、id\u DEV
。Id_dev是表“dev”的外键

我试图做的是:进行查询以获取所有未分配任务的开发人员(表“task”中没有具有给定dev.id的记录),并获取另一个具有任务的开发人员列表

我要他们分开。我尝试了教程中的一些内容:

SELECT * FROM `dev` INNER JOIN 'task' ON dev.id=task.id_dev ORDER BY dev.id;
但这对我不起作用。有什么建议吗?
亲切的问候

如果希望“dev”记录不包含“task”,则不应使用
内部联接
,因为这样会返回集合的交集

一个选项是使用
左连接
,例如:

SELECT      dev.* 

FROM        dev

LEFT JOIN   task
    ON      dev.id=task.id_dev 

WHERE       task.id_dev IS NULL

ORDER BY    dev.id;

如果希望“dev”记录不包含“task”,则不应使用
内部联接
,因为这样会返回集合的交集

一个选项是使用
左连接
,例如:

SELECT      dev.* 

FROM        dev

LEFT JOIN   task
    ON      dev.id=task.id_dev 

WHERE       task.id_dev IS NULL

ORDER BY    dev.id;
不要在
任务
上使用单引号
。查询应如下所示:

SELECT * FROM `dev` INNER JOIN `task` ON dev.id=task.id_dev ORDER BY dev.id;
不要在
任务
上使用单引号
。查询应如下所示:

SELECT * FROM `dev` INNER JOIN `task` ON dev.id=task.id_dev ORDER BY dev.id;

使用
左连接
而不是
内部连接

试试这个:

SELECT d.* 
FROM `dev` d 
LEFT JOIN `task` t ON d.id = t.id_dev 
WHERE t.id IS NULL 
ORDER BY d.id;

使用
左连接
而不是
内部连接

试试这个:

SELECT d.* 
FROM `dev` d 
LEFT JOIN `task` t ON d.id = t.id_dev 
WHERE t.id IS NULL 
ORDER BY d.id;

“但它对我不起作用”-这是最好的问题描述吗?不#1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可在第1行dev.id=task.id_dev ORDER BY dev.id上使用near'FROM
dev
internal JOIN'task'的正确语法您希望发生什么以及为什么?教程怎么说?您是否查找了内部联接的功能以及您希望它执行的功能?请为数据库对象提供别名,然后重试。您需要在“task”(即“task”)周围使用反勾号,而不是单引号,但“task”“但它不适用于我”-这是最好的问题描述吗?不#1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可在第1行dev.id=task.id_dev ORDER BY dev.id上使用near'FROM
dev
internal JOIN'task'的正确语法您希望发生什么以及为什么?教程怎么说?您是否查找了内部联接的作用以及您期望它做的事情?请为数据库对象提供别名,然后重试。您需要反勾号,而不是在“task”周围加上单引号,即仍然返回两个集合的交集的“task”,而不是仍然返回两个集合交集的“所有未分配任务的开发人员”,而不是“所有未分配任务的开发人员”谢谢,你说得对,应该使用left join。效果很好,谢谢。我还有一个问题。我刚刚填充数据库,当我为一个开发人员分配了多个任务时,我开始获得克隆记录。有什么办法修复它吗?提前谢谢。好的,我发现,这只是”“DISTINCT”关键字。对不起,谢谢,你说得对,应该使用left join。效果很好,谢谢。我还有一个问题。我刚刚填充数据库,当我为一个开发人员分配了多个任务时,我开始获得克隆记录。有什么办法修复它吗?提前谢谢。好的,我想起来了,它只是”“不同”关键字。抱歉搞砸了