如何合并左联接和在何处联接(旧学校逗号联接)?

时间:2019-09-26 11:12:37

标签: mysql sql left-join

这没问题

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

1 个答案:

答案 0 :(得分:2)

你不知道。您将{em> all JOIN逻辑放在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语法。