如何根据同一SELECT中不同的id从表中获取两个值

aln*_*fie 2 php mysql sql

我有两张桌子:

Users
=====================================
id, name, country_id, nationality_id

Countries
=====================================
id, name, currency
Run Code Online (Sandbox Code Playgroud)

country_id并且nationality_id都使用Countries表中的id.

country_idnationality_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)

Mic*_*ski 5

诀窍是使用两个连接来对抗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)