使用单个查询从一个表中获取行,并引用具有另一个表的数据列的行

时间:2012-06-28 07:26:13

标签: mysql

我有一个表 tblA ,其中包含 a1 a2 以及以下数据

a1        a2

1       1,2,3

2       4,5

3       6,7,8,9

另一个表 tblB ,其字段为 b1 b2 ,其中包含以下数据

b1          b2

1         b2a

2         b2b

3         b2c

4         b2d

5         b2e

6         b2f

7         b2g

8         b2h

9         b2i

现在,参考来自 tblA a2 字段和来自 tblB b1 字段,我们必须提取来自 tblB

b2 字段的数据

我使用了以下查询

SELECT b2 FROM tblB WHERE b1 IN (SELECT a2 FROM tblA WHERE a1 = 1)

这只取了一行1,即。数据是b2a

但我需要像

这样的数据列表

B2A

B2B

B2C

请帮我解决问题。有一点需要注意,我需要一个查询来获取数据。

1 个答案:

答案 0 :(得分:3)

您需要使用FIND_IN_SET DOC

SELECT b2 FROM tblB WHERE FIND_IN_SET(b1, (SELECT a2 FROM tblA WHERE a1 = 1)) != 0