Как сделать выборку MySQL чтобы значения в колонке содержали значения из списка

110
20 января 2021, 05:20

Есть 2 таблицы, из одной я могу выбрать список нужных мне id:

SELECT id FROM `table_with_id` WHERE parent_id = "100500"

А в другой есть поле alias, которое содержит эти id из списка вот в таком виде: category_id=1

Как мне выбрать из второй таблицы все подходящие мне строки в которых значения поля alias были бы равны category_id={{любое значение из моей первой выборки}}

Answer 1

Есть два основных способа реализации такого запроса: join и in/any

Если поле называется alias, то запросы могут выглядеть как-то так:

В первом случае вам нужно объединить таблицы по соответствующим полям

select *
from table2 t2
join table_with_id t on
    t2.alias = concat('category_id=', t.id) and
    t.parent_id = 100500

Во втором используем подзапрос:

select *
from table2 t2
where t2.alias in (
    select concat('category_id=', t.id)
    from table_with_id t
    where t.parent_id = 100500
)
Answer 2

Для второй таблицы нужно использовать в WHERE функцию IN, в которой выполняем первый запрос. Приме:

SELECT id FROM `table2` WHERE category_id IN (SELECT id FROM `table_with_id` WHERE parent_id = "100500")
READ ALSO
Изменение значения в элемента в массиве

Изменение значения в элемента в массиве

Подскажите пожалуйста, есть код, в этом коде, происходит разложение текста в массив, после чего идет проверка текста с изменением его согласно...

126
Не могу изменить несколько записей из БД

Не могу изменить несколько записей из БД

Есть таблица Фильмов,Актеров и таблица соединяющая ид фильма и ид актераЕсть разметка

124
Почему заказ придет без товара?

Почему заказ придет без товара?

всем доброго времени суток

133
Ошибка отправки уведомления Bitmessage

Ошибка отправки уведомления Bitmessage

помогите пожалуйста с решением вопроса

125