2013-11-01 71 views
0

可以说我有这样的一个表:如何用另一个表中的相应值替换一个表中的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,但我真的不知道如何使它工作。

回答

2
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 
+0

谢谢你,那是解决方案,现在我明白了所有那些加入维恩图,谢谢! – arielnmz

+0

我不希望你的表格很大..没有WHERE语句的连接会迫使MySQL引擎返回很多记录.. –

相关问题