Запрос из двух столбцов, реально ли? - MySQL
Формулировка задачи:
Есть два столбца, допустим id_object и id_service
примерно так:
Нужно вот что: выбрать все строки, в которых значение id_service = 1 или 5, но не просто 1 или 5, а чтобы эти значения были связаны со столбцом id_object
т.е. чтобы выводилось вот так
если id_object=1, то проверить есть ли у него значение 1 и 5 одновременно у id_service. если да, то выводить, если нет, то не нужно. допустим, если есть значение 1, но нет значения 5, то выводить не нужно
id_object id_service 1 1 1 5 5 1 7 2
id_object id_service 1 1 1 5 2 1 2 5
Решение задачи: «Запрос из двух столбцов, реально ли?»
textual
Листинг программы
SELECT t.* FROM mytable t JOIN mytable t1 ON t.id_object = t1.id_object AND t1.id_service = 1 JOIN mytable t5 ON t1.id_object = t5.id_object AND t5.id_service = 5
Объяснение кода листинга программы
В представленном коде выполняется запрос к таблице mytable
с условием объединения по двум столбцам: id_object
и id_service
. При этом, для объединения используются таблицы t1
и t5
. Значения переменных, которые соответствуют идентификаторам объектов и услуг, равны 1 и 5 соответственно.
Список элементов кода:
- SELECT t.* - выбор всех столбцов из таблицы
mytable
с псевдонимомt
. - FROM mytable t - указание источника данных (таблицы
mytable
). - JOIN mytable t1 ON - условие объединения по двум столбцам:
id_object
иid_service
. - AND t1.id_service = 1 - добавление условия объединения по столбцу
id_service
со значением 1. - JOIN mytable t5 ON - условие объединения по двум столбцам:
id_object
иid_service
. - AND t5.id_service = 5 - добавление условия объединения по столбцу
id_service
со значением 5. Таким образом, в результате выполнения запроса будет получена выборка данных из таблицыmytable
, в которой будут учтены указанные условия объединения по столбцамid_object
иid_service
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д