【发布时间】:2011-12-12 19:13:38
【问题描述】:
我有下表
mysql> desc items;
+-------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| code | varchar(255) | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
| price | float | YES | | NULL | |
| ingredient_id | int(11) | YES | | NULL | |
| ingredient_id2 | int(11) | YES | | 0 | |
| ingredient_id3 | int(11) | YES | | 0 | |
+-------------------+--------------+------+-----+---------+----------------+
还有我的配料表
mysql> desc ingredients;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
和ingredient_id, ingredient_id2, ingredient_id3 列是“成分”表的外键,我的要求是创建一个选择查询来显示项目和成分如下
select id, code, name, price, name as ingredient_name1, name as ingredient_name2, name as ingredient_name3
但我不知道如何加入同一个表 3 次,谁能帮我理解这个加入条件
【问题讨论】:
-
"如何加入同一个表 3 次" --- 你只需加入同一个表 3 次,给出不同的别名。将表连接到自身并没有什么特别的魔力
-
仅供参考:项目表未标准化。如果一件物品的成分超过 3 种,你会怎么做?
标签: mysql database select join