我有以下A和tbl B,我想得到他们的名字,这些名字是用逗号分隔的,但我没有得到我想要的格式。
http://sqlfiddle.com/#!2/149093/10
用户:1,2,3; 2 - 我也应该得到名字A,B,C然后B但是我只得到A和B. 我应该如何获得列用户中的个人姓名,并且还满足至少存在2的条件。谢谢提前。
预期输出为:
整行与A
整行与B
整个行用C
整个行与A
基本上有4行,因为总共有4个用户的名字。
| USER | CATEGORY | USERNAME |
|-------|----------|----------|
| 1,2,3 | 1 | A |
| 1,2,3 | 1 | B |
| 1,2,3 | 1 | C |
| 2 | 1 | B |
答案 0 :(得分:2)
试试这个:
SELECT a.user, a.category, b.username
FROM tblA a
JOIN tblB b ON find_in_set(b.userid,a.user)
WHERE FIND_IN_SET(2,a.user)
ORDER BY a.user;
<强>输出强>
| USER | CATEGORY | USERNAME |
|-------|----------|----------|
| 1,2,3 | 1 | A |
| 1,2,3 | 1 | B |
| 1,2,3 | 1 | C |
| 2 | 1 | B |
答案 1 :(得分:0)
你不应该使用
('1,2,3', '1'),
('1,4,5', '2'),
('1,3,5', '3'),
将多个用户添加到同一类别。相反,请使用您已在下面使用的格式将用户添加到类别中:
('1', '1'),
('2', '1');
所以,而不是:('1,4,5', '2'),
使用:('1', '2'), ('4', '5'), ('1', '2'),