mysql - 如何在 JOIN 查询后在结果表中显示连接表的主键?
Posted
技术标签:
【中文标题】mysql - 如何在 JOIN 查询后在结果表中显示连接表的主键?【英文标题】:mysql - How to display primary key from junctional table in result table after JOIN query? 【发布时间】:2018-11-14 16:47:30 【问题描述】:我有一个关系数据库模型。因为我正在学习这种数据库设计的 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
显示为第三列?如何制作这样的东西:
+----+---------------------+
| id | meaning | word_type |
+----+---------+-----------+
| 1 | man | noun |
+----+---------+-----------+
感谢每一个帮助。
【问题讨论】:
【参考方案1】:您只需选择所需的列即可。在这种情况下,您还需要将junc_meaning_word_type.id
添加到SELECT
子句中。
此外,建议在多表查询的情况下使用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 - 如何在 JOIN 查询后在结果表中显示连接表的主键?的主要内容,如果未能解决你的问题,请参考以下文章
如何获得 MySQL JOIN 的结果,其中记录符合联接表中的值标准?