我有两张桌子:
Users
=====================================
id, name, country_id, nationality_id
Countries
=====================================
id, name, currency
Run Code Online (Sandbox Code Playgroud)
country_id并且nationality_id都使用Countries表中的id.
country_id而nationality_id不一定是相同的.
我想得到的是一个表格,其中包含给定国家/地区的每个用户的名称,他们所在国家/地区的名称nationality_id以及他们使用的货币country_id.
我的问题是如何做WHERE子句.这就是我所拥有的,但它是不正确的,因为货币由nationality_id而不是代替country_id.
希望有道理......
SELECT
Users.name,
Countries.name,
Countries.currency
FROM
Users, Countries
WHERE
Users.nationality_id = Countries.id
AND Countries.id = 6
Run Code Online (Sandbox Code Playgroud)
诀窍是使用两个连接来对抗Countries不同的alises,一个用于nationality_id,另一个用于country_id.
SELECT
Users.name,
/* name from the nationality_id join */
cn.name,
/* currency from the country_id join */
cc.currency
FROM
Users
JOIN Countries cn ON Users.nationality_id = cn.id
JOIN Countries cc ON Users.country_id = cc.id
WHERE
Users.country_id = 6
Run Code Online (Sandbox Code Playgroud)