首页 > 解决方案 > 如何结合左连接和哪里连接(老派逗号连接)?

问题描述

这没问题

select user.`username` , id_user_gender.text gender
from user
left join id_user_gender
on user.idGender = id_user_gender.id
where 1

这也没有问题

select user.`username` , user.idType
from user,id_user_type
where user.idType=id_user_type.id

但这是错误:#1054 - 'on 子句'中的未知列 'user.idGender'

select user.`username` , id_user_gender.text gender, user.idType
from user,id_user_type
left join id_user_gender
on user.idGender = id_user_gender.id
where user.idType=id_user_type.id

如何在同一个查询中使用左连接和哪里连接?

我也试过这个,但不工作

select uu.`username` , id_user_gender.text gender, uu.idType
from user as uu,id_user_type
left join id_user_gender
on uu.idGender = id_user_gender.id
where uu.idType=id_user_type.id

标签: mysqlsqlleft-join

解决方案


你没有。您将所有 JOIN逻辑放在s 所属的FROM子句中:JOIN

select u.`username`, iug.text gender, u.idType
from user u join
     id_user_type iut
     on u.idType = iut.id left join
     id_user_gender iug
     on u.idGender = iug.id;

简单规则: 永远不要FROM子句中使用逗号。 始终使用正确、明确、标准 JOIN的语法。


推荐阅读