Mysql 内部连接对我不起作用
我试图让我的SQL查询工作,但我失败了,所以我决定找更有经验和熟悉SQL的人,因为我不是这样 我的数据库中有两个表,一个是“DEV”表,其中包含: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的记录),并获取另一个具有任务的开发人员列表 我要他们分开。我尝试了教程中的一些内容:
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'FROMdev
internal JOIN'task'的正确语法您希望发生什么以及为什么?教程怎么说?您是否查找了内部联接的作用以及您期望它做的事情?请为数据库对象提供别名,然后重试。您需要反勾号,而不是在“task”周围加上单引号,即仍然返回两个集合的交集的“task”,而不是仍然返回两个集合交集的“所有未分配任务的开发人员”,而不是“所有未分配任务的开发人员”谢谢,你说得对,应该使用left join。效果很好,谢谢。我还有一个问题。我刚刚填充数据库,当我为一个开发人员分配了多个任务时,我开始获得克隆记录。有什么办法修复它吗?提前谢谢。好的,我发现,这只是”“DISTINCT”关键字。对不起,谢谢,你说得对,应该使用left join。效果很好,谢谢。我还有一个问题。我刚刚填充数据库,当我为一个开发人员分配了多个任务时,我开始获得克隆记录。有什么办法修复它吗?提前谢谢。好的,我想起来了,它只是”“不同”关键字。抱歉搞砸了