关系数据库mysql如何在连接查询后在结果表中显示连接表中的主键?

f87krz0w  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(319)

我有一个关系数据库模型。因为我正在学习mysql查询来进行这种数据库设计,所以我知道一些基础知识,但是我找到了问题所在。
这些是我的table:

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 作为第三列的查询结果?如何制作这样的东西:

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

感谢您的帮助。

fkvaft9z

fkvaft9z1#

您只需选择所需的列即可。在这种情况下,您需要添加 junc_meaning_word_type.idSELECT 条款。
此外,建议在多表查询的情况下使用别名,以提高代码的清晰度(可读性)并避免模棱两可的行为。

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

相关问题