如何在另一张表中获取具有匹配外键的列的替换值?

问题描述 投票:0回答:1

所以我有两个桌子。一个是看起来像这样的客户

+----------+-----------+----------+-------------+--------+---------+---------+----------------+------------+-------+---------+
| ClientId | FirstName | LastName | DateOfBirth | Gender | PriLang | SecLang | Address        | City       | State | ZipCode |
+----------+-----------+----------+-------------+--------+---------+---------+----------------+------------+-------+---------+
|    00002 | Peter     | Parker   | 2001-08-10  | Male   |       4 |       1 | 2389 Some Road | Where City | MA    | 60042   |
+----------+-----------+----------+-------------+--------+---------+---------+----------------+------------+-------+---------+

另一个是语言

+-------------------+-----------------+
| LanguageId        | LanguageName    |
+-------------------+-----------------+
|                 1 | English         |
|                 2 | Spanish         |
|                 3 | Vietnamese      |
|                 4 | French          |
|                 5 | Korean          |
|                 6 | Japanese        |
|                 7 | Italian         |
+-------------------+-----------------+

我不知道如何用语言表中的语言名称替换PriLang和SecLang中的外键值。

mysql
1个回答
0
投票

您必须两次加入语言表


查询#1

SELECT 
`ClientId`, `FirstName`, `LastName`, `DateOfBirth`, `Gender`
, l1.LanguageName `PriLang`, l2.LanguageName `SecLang`, `Address`, `City`, `State`, `ZipCode`
FROM client c
INNER JOIN 
language l1 ON c.PriLang = l1.LanguageId
INNER JOIN 
language l2 ON c.SecLang = l2.LanguageId;

| ClientId | FirstName | LastName | DateOfBirth | Gender | Address        | City       | State | ZipCode | PriLang | SecLang |
| -------- | --------- | -------- | ----------- | ------ | -------------- | ---------- | ----- | ------- | ------- | ------- |
| 2        | Peter     | Parker   | 2001-08-10  | Male   | 2389 Some Road | Where City | MA    | 60042   | French  | English |

View on DB Fiddle

© www.soinside.com 2019 - 2024. All rights reserved.