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
我有一个关系数据库模型。因为我正在学习 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