联接查询后如何显示结果表中的联结表的主键?

时间:2018-11-14 16:47:31

标签: mysql relational-database junction-table

我有一个关系数据库模型。因为我正在学习用于这种数据库设计的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 个答案:

答案 0 :(得分:2)

您只需选择所需的列即可。在这种情况下,您还需要向extern crate num; // 0.2.0 use num::One; use std::collections::BTreeMap; fn frequency<T>(vec: &mut Vec<T>) -> BTreeMap<T, u32> where T: Ord + Clone + One, { let mut movie_reviews = BTreeMap::new(); vec.push(T::one()); movie_reviews } 子句中添加junc_meaning_word_type.id

此外,建议在多表查询的情况下使用Aliasing,以提高代码的清晰度(可读性)并避免歧义行为。

SELECT