Оптимизировать запрос - MySQL (220464)

Узнай цену своей работы

Формулировка задачи:

Есть 3 таблицы table1 (id, name) table2_1 (table1_id, table3_1_id) table3_1 (id, value) table2_2 (table1_id, table3_2_id) table3_2 (id, value) нужно выбрать из table1 все записи, для которых в таблице table3_1 и table3_2 существуют записи, у которых value = "value" Помогите написать, у меня больно большой получается и не работает)))
Листинг программы
  1. SELECT table1 .* FROM table1
  2. LEFT JOIN table2_1 ON table2_1.table1_id = table1 .id
  3. LEFT JOIN table2_2 ON table2_2.table1_id = table1 .id
  4. LEFT JOIN table3_1 ON table3_1 .Id = table2_1.table3_1_id
  5. LEFT JOIN table3_2 ON table3_2 .Id = table2_2.table3_2_id
  6. WHERE table3_2.Value = "value" AND table3_1.Value = "value"

Решение задачи: «Оптимизировать запрос»

textual
Листинг программы
  1. SELECT table1.* FROM table1
  2. WHERE EXISTS (SELECT 1 FROM table3_1 WHERE table3_1.id = table1.id AND table3_1.value = "value")
  3. AND EXISTS(SELECT 1 FROM table3_2 WHERE table3_2.id = table1.id AND table3_2.value = "value")

Объяснение кода листинга программы

  1. SELECT table1.* FROM table1 - выбираем все поля из таблицы table1
  2. WHERE EXISTS (SELECT 1 FROM table3_1 WHERE table3_1.id = table1.id AND table3_1.value = value) - условие, что существует запись в таблице table3_1, где id равен id из таблицы table1 и значение равно value
  3. AND EXISTS(SELECT 1 FROM table3_2 WHERE table3_2.id = table1.id AND table3_2.value = value) - условие, что существует запись в таблице table3_2, где id равен id из таблицы table1 и значение равно value

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут