SQL:对同一个表的多个匹配?

时间:2011-08-07 20:06:48

标签: mysql view

可能是一个非常基本的解决方案,但我似乎无法弄明白。我想要匹配 一个表中的多个ID朝向另一个表。

结构是这样的,

tt_staff (ID - name)
2 - Lenny
3 - Carl

tt_run (producer1 - producer2)
2 (i.e Lenny)
3 (i.e Carl)

我想用一行创建一个视图,向我显示Carl和Lenny的名字,而不是他们的ID。

试过以下内容,

SELECT e.*, run.*, s.s_name FROM tt_run AS run, tt_events AS e, tt_staff AS s
WHERE e.e_ID = run.e_ID
AND run.e_bandproducer1 = s.s_ID 
AND run.e_bandproducer2 = s.s_ID

这显然不起作用,因为ID在producer1上找到。我也尝试过UNION,但对它不熟悉(我确实设法得到了正确的结果,但是分成两行)。

一如既往,感谢您的回复。

1 个答案:

答案 0 :(得分:1)

看起来你只需要加入tt_staff两次:

SELECT e.*, r.*, s1.s_name, s2.s_name
  FROM tt_events e
  INNER JOIN tt_run r ON e.e_ID = r.e_ID
  INNER JOIN tt_staff s1 ON r.e_bandproducer1 = s1.s_ID
  INNER JOIN tt_staff s2 ON r.e_bandproducer2 = s2.s_ID