如何用另一个表中的相应值替换一个表中的ID?
问题描述:
可以说我有这样的一个表:如何用另一个表中的相应值替换一个表中的ID?
+----------+-----------+-----------+
| name | color_id | shape_id |
+----------+-----------+-----------+
| A | 1 | 1 |
+----------+-----------+-----------+
| B | 2 | 2 |
+----------+-----------+-----------+
| C | 3 | 3 |
+----------+-----------+-----------+
和两个其他表像这样:
+----------+-------+
| color_id | color |
+----------+-------+
| 1 | R |
+----------+-------+
| 2 | G |
+----------+-------+
| 3 | B |
+----------+-------+
+----------+-------+
| shape_id | shape |
+----------+-------+
| 1 | S |
+----------+-------+
| 2 | T |
+----------+-------+
| 3 | C |
+----------+-------+
我希望做一个查询并得到这个结果集:
+----------+-----------+-----------+
| name | color | shape |
+----------+-----------+-----------+
| A | R | S |
+----------+-----------+-----------+
| B | G | T |
+----------+-----------+-----------+
| C | B | C |
+----------+-----------+-----------+
我认为它必须做一些JOIN,但我真的不知道如何使它工作。
答
SELECT
name, color, shape
FROM
table1
INNER JOIN
table2 ON table1.color_id = table2.color_id
INNER JOIN
table3 ON table1.shape_id = table3.shape_id
谢谢你,那是解决方案,现在我明白了所有那些加入维恩图,谢谢! – arielnmz
我不希望你的表格很大..没有WHERE语句的连接会迫使MySQL引擎返回很多记录.. –