我试图找出一种执行SQL查询的好方法,该查询返回用户名及其选择的表(有一组选项,用户可以有很多选择),如示例中所示下面。我还没有找到一个很好的简单例子(除了如何建立关系)。这个解决方案是否可行或有更好的方法吗?我似乎找到了我正在寻找的桌子。
SELECT
users.name,
choices.choice as choice
FROM
choice
JOIN relation ON choice.choice_id = relation.choice_id
JOIN users ON users.name_id = relation.user_id;
给我正确的表格:
+------+--------+
| name | choice |
+------+--------+
| amy | a |
| amy | b |
| amy | c |
| joe | d |
+------+--------+
简单数据库如下所示:
用户
+------+---------+
| name | name_id |
+------+---------+
| amy | 1 |
| joe | 2 |
+------+---------+
选择
+----------+---------+
| choice_id| choice |
+----------+---------+
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
+----------+---------+
关系
+----------+---------+
| choice_id| user_id |
+----------+---------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
+----------+---------+