多个表的SQL查询问题

时间:2013-01-30 23:17:06

标签: mysql sql multiple-tables

在查找我的表格时遇到问题

我有2个表格tab1和table2如下

table1
id (int) auto_increment
table2_id1(int)
table2_id2(int)
table2_id3(int)
table2_id4(int)

表2

id(int) auto
name (varchar)

我要做的是获取一个查询,以显示table2_id1整数的table2.name的名称。

例如我将做什么并且没有查询

1....test...test...test...test
2....mos...test...mos...mos

我的表格如下

表1

1   1   1   1   1   
2   2   1   2   2

表2

1   test
2  mos

希望你能理解我想要做的事情,可能是一些简单的方法来获得结果,但我无法找到它。我很高兴能得到所有帮助。

2 个答案:

答案 0 :(得分:2)

你需要使用别名加入table2,有4次不同,请注意,正如 Mike 指出的那样,这不是一个非常好的结构,你最好创建一个不同的表来处理这种一对多关系,而不是在表1上添加列

 SELECT Table1.id, a.name AS name1, b.name AS name2, c.name as name3, d.name AS name4
 FROM Table1
      JOIN Table2 a on Table1.table2_id1 = a.id 
      JOIN Table2 b on Table1.table2_id2 = b.id 
      JOIN Table2 c on Table1.table2_id3 = c.id 
      JOIN Table2 d on Table1.table2_id4 = d.id 

答案 1 :(得分:0)

试试这个

SELECT id, A.name, B.name 
FROM table1 
  LEFT JOIN table2 AS A ON A.id = table1.table2_id1 
  LEFT JOIN table2 AS B ON B.id = table1.table2_id2;

我刚刚收到前两个,但你可以用同样的方式添加其余的