从连接表中选择多行

时间:2011-02-25 14:04:45

标签: mysql join

我有一个表A,其字段X包含一个像1,2,3这样的值列表 然后是第二个表B,其中包含字段uid。 如果A.X包含1,2,3我想从表B中获取uid为1或2或3的行。

我试过加入像:

SELECT b.value FROM A a JOIN B b ON b.uid IN ( a.X )

这种方式有效,但我当然只得到1个结果。我如何获得所有结果?我知道我可以使用第二个查询,但有可能将其合并到一起吗?

(我知道使用这样的结构并不好,并且应该使用n-n表,但这是由使用过的系统给出的)

1 个答案:

答案 0 :(得分:1)

正如您在问题中所述,这不是一个好的设计。我认为以下内容应该有效(尽管效果不佳)

SELECT b.value 
FROM A a 
JOIN B b ON  CONCAT(',',a.X,',') LIKE CONCAT('%,',b.uid,',%')