Выбрать несколько строк из объединенной таблицы - PullRequest
1 голос
/ 25 февраля 2011

У меня есть таблица A с полем X, которая содержит список значений, например, 1,2,3. Затем есть вторая таблица B с полем uid.Если AX содержит 1,2,3, я хочу получить строки из таблицы B, где uid равен 1 или 2 или 3.

Я пытался соединиться как:

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

Это работаетно я получаю только 1 результат в b.value, конечно.Как я могу получить все результаты?Я знаю, что мог бы просто использовать второй Запрос, но возможно получить это в одном?

(Я знаю, что не очень удобно использовать такую ​​структуру, и нужно использовать nn таблиц, но это даетсяиспользуемая система)

1 Ответ

1 голос
/ 25 февраля 2011

Как вы заявили в своем вопросе, это не очень хороший дизайн. Я думаю, что следующее должно работать (хотя и не с хорошей производительностью)

SELECT b.value 
FROM A a 
JOIN B b ON  CONCAT(',',a.X,',') LIKE CONCAT('%,',b.uid,',%') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...