mysql从另一个表中选择一行的多列

标签 mysql select

我通常会用谷歌搜索我的问题,因为它们并不是我独有的。但是,这次我找不到答案(可能没有使用正确的关键字)。

问题描述:

我有两个表。
第一张表 - defenition_list 包含唯一的 ID 和名称

ID | NAME   
-----------
 1 | BMW   
 2 | AUDI  
 3 | VW  
 4 | MAZDA  

第二个表 - used_id 保存第一个表中的 ID

ID | def_uid1 | def_uid2 | def_uid3  
------------------------------------
 1 |    2     |     3    |    2    
 2 |    4     |     2    |    1 

所以通常如果我只需要返回一列的值,我会像这样选择:

SELECT d.NAME, u.def_uid1 FROM defenition_list d, used_id u WHERE d.ID=u.def_uid1

但是如何编写查询来同时获取 def_uid2 和 def_uid3 的名称呢?所以结果看起来像:

ID | def_uid1 | def_uid2 | def_uid3 |
--------------------------------------
 1 |  AUDI    |   VW     |    AUDI  |
 2 |  MAZDA   |   AUDI   |    BMW   |

最佳答案

你必须加入你的名字表 3 次:

SELECT used_id.ID, d1.name, d2.name, d3.name
FROM used_id
LEFT JOIN definition_list AS d1 ON used_id.def_uid1 = d1.id
LEFT JOIN definition_list AS d2 ON ...
LEFT JOIN definition_list AS d3 ON ...

关于mysql从另一个表中选择一行的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30576545/

相关文章:

android - 在 TableView 中显示结果集

mysql - 恢复已删除的 MySQL 行?

PHP:程序无法运行。我不明白这个错误

mysql - 查找数据库中多个表之间的匹配

php - 选择用户发送或发送给用户的消息

Mysql数据包太大

根据重要性多次出现元素的MySQL结果

javascript - 访问自定义选择属性值

sql - SELECT IN 用于大集合

mysql - 如何在 MySQL 中同时更新和选择