2014-12-30 3 views
1

У меня есть tbl A и tbl B, как показано ниже, и я хотел бы получить их имена, разделенные запятой, но я не получаю в формате, который я ищу.Выберите запрос с запятой и присоединитесь

http://sqlfiddle.com/#!2/149093/10

Пользователь: 1,2,3; 2 - Я хотел бы также получить имена A, B, C, а затем B, но я получаю только А и В. Как я должен получить свои имена, которые находятся в пользователе столбца, а также удовлетворяют условию, по крайней мере, 2. Спасибо в Advance.

Ожидаемого выход:

весь ряд с
всего ряда с B
всей строкой с C
всего ряда с

В основном 4 строк, как есть 4 пользователей в общей сложности с их имя .

| USER | CATEGORY | USERNAME | 
|-------|----------|----------| 
| 1,2,3 |  1 |  A | 
| 1,2,3 |  1 |  B | 
| 1,2,3 |  1 |  C | 
|  2 |  1 |  B | 
+1

Что это xpected выход? его неясно в вопросе –

ответ

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; 

SQL FIDDLE DEMO

OUTPUT

| USER | CATEGORY | USERNAME | 
|-------|----------|----------| 
| 1,2,3 |  1 |  A | 
| 1,2,3 |  1 |  B | 
| 1,2,3 |  1 |  C | 
|  2 |  1 |  B | 
+0

Это действительно близко, как я могу получить 4 строки вместо 2, а также вы можете объяснить запрос. Это помогло бы мне ton.Thanks – jason

+0

добавил expexted result.But вы можете объяснить запрос выше Я попробовал много за результат, который вы дали, но я не смог прийти к результату. Спасибо – jason

+0

Super + 1.I забыли присоединиться к другой таблице, которая находится на created_by_sno. Я обновлю его в другом вопросе и пометьте вас. Пожалуйста, изучите его. Еще раз спасибо. Отличный день. – jason

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'),