SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.06.2022 20:55:49

rbwest
Участник
Зарегистрирован: 30.10.2011
Сообщений: 21

Можно ли использовать IN в запросе с JOIN

Приветствую, как правильно написать такой запрос
есть таблица t1 в которой есть поле (varchar) service, которое содержит строку 1,2,3
такой запрос


SELECT t1.services,t2.id,t2.title
FROM t1
JOIN t2 ON t2.id IN(t1.service)
 

вернет только первое значение из поля title таблицы t2
а мне бы хотелось получать в title массив из заголовков, id которых есть в t1.service
а как получить все? Что то мне подсказывает, что наверное нельзя так в лоб сделать? Надо как то подзапросами?

Неактивен

 

#2 19.06.2022 00:31:46

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Можно ли использовать IN в запросе с JOIN

Можно использовать find_in_set(), но не будет использоваться индекс

Неактивен

 

#3 19.06.2022 09:33:25

rbwest
Участник
Зарегистрирован: 30.10.2011
Сообщений: 21

Re: Можно ли использовать IN в запросе с JOIN

vasya написал:

Можно использовать find_in_set(), но не будет использоваться индекс

спасибо, но я что-то не так наверное делаю?


JOIN t2 ON t2.id FIND_IN_SET("t1.services")
 

это возвращает пустой массив

Отредактированно rbwest (19.06.2022 09:33:49)

Неактивен

 

#4 19.06.2022 11:37:11

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Можно ли использовать IN в запросе с JOIN


SELECT t1.services,t2.id,t2.title
FROM t1
JOIN t2 ON find_in_set(t2.id,t1.service)>0

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson