mysql - 如何在 JOIN 查询后的结果 table 中显示来自连接 table 的主键?

mysql - How to display primary key from junctional table in result table after JOIN query?

我有一个关系数据库模型。因为我正在学习 MySQL 此类数据库设计的查询,所以我知道基础知识,但我遇到了问题。

这些是我的表格:

 hgs_word_types           hgs_meanings
 +----+-----------+       +----+-----------+
 | id | word_type |       | id | meaning   |
 +----+-----------+       +----+-----------+
 | 1  | noun      |       | 1  | man       |
 +----+-----------+       +----+-----------+

 junc_meaning_word_type
 +----+------------+--------------+
 | id | meaning_id | word_type_id |
 +----+------------+--------------+
 | 1  | 1          | 1            |
 +----+------------+--------------+ 

这是我的查询:

SELECT hgs_word_types.word_type, hgs_meanings.meaning
FROM junc_meaning_word_type
JOIN hgs_word_types ON junc_meaning_word_type.word_type_id = hgs_word_types.id
JOIN hgs_meanings ON junc_meaning_word_type.meaning_id = hgs_meanings.id

我得到的结果是这样的:

+---------------------+
| meaning | word_type |
+---------+-----------+
| man     | noun      |
+---------+-----------+

如何在该查询的结果中将 junc_meaning_word_type.id 显示为第 3 列?如何制作这样的东西:

+----+---------------------+
| id | meaning | word_type |
+----+---------+-----------+
| 1  | man     | noun      |
+----+---------+-----------+

感谢您的帮助。

您只需 select 所需的列即可。在这种情况下,您还需要将 junc_meaning_word_type.id 添加到 SELECT 子句中。

此外,为了代码清晰(可读性)并避免模棱两可的行为,建议在多个 table 查询的情况下使用 Aliasing

SELECT junc.id, 
       typ.word_type, 
       mean.meaning
FROM junc_meaning_word_type AS junc
JOIN hgs_word_types AS typ
  ON junc.word_type_id = typ.id
JOIN hgs_meanings AS mean 
  ON junc.meaning_id = mean.id