连续编码 48 小时,我正在用头撞墙。请帮我解决这个小问题。
我的 SQL 查询是这样的:
SELECT u.Firstname, u.Lastname, u.Rep, u.Email, u.Password, u.Gender, u.Level,
u.Birthday, u.Achievements, u.Height, u.Unit, u.cityid, u.countryid,
r.RegDate, ci.Name AS City, co.Name AS Country
FROM Users u, Registry r, Cities ci, Countries co
WHERE u.id = 1 AND r.uid = u.id AND u.cityid = ci.id AND u.countryid = co.id
LIMIT 1
我的问题是,我只是注意到有时 Users.cityid
和 Users.countryid
是 NULL
(这没问题)。
我希望查询为我提供该用户的所有其他信息(例如,为 City
和 Country
返回 NULL
),即使一个或两个这些字段是NULL
。如何使 AND
部分成为条件?
我希望我能在迷茫中让自己清醒过来。
最佳答案
如果我正确理解了您的情况,我认为您需要几个 OUTER
连接。
SELECT ...
FROM Users u
INNER JOIN Registry r ON r.uid = u.id
LEFT JOIN Cities ci ON u.cityid = ci.id
LEFT JOIN Countries co ON u.countryid = co.id
WHERE u.id = 1
关于mysql - SQL语法帮助,条件AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6852584/