SELECT из 10 таблиц

Тема в разделе "Базы данных", создана пользователем phillip, 3 май 2011.

Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Помогите составить запрос!
    10 таблиц. В каждой таблице разные поля, одинаковые названия только id и status. Надо выбрать все записи со всех таблиц, у которых status=ok

    пробовал уже с джойнами, с юнион, чето все не то вылазит что надо :(
     
  2. Maza

    Maza

    Регистр.:
    3 июл 2007
    Сообщения:
    255
    Симпатии:
    118
    Примеры таблиц в студию :)
     
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    yabloki (id,size,status)
    morkovi (id,address,status)
    tomato (id,color,status)
    potato (id,weight,status)

    на выходе хочу получить таблицу со всеми овощами-фруктами, у которых статус=ок.
    допустим

    айди=4, морковка, address=leninsk, статус=ок
    айди=4, картошка, weight=120, статус=ок
    айди=12, помидорка, color=red, статус=ок

    расписал так, а то если я таблицы целиком приведу, мы просто запутаемся, там много полей и самих таблиц 10 штук :)
     
  4. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    199
    Симпатии:
    55
    Код:
    SELECT id,address,status,"morkovki" FROM morkovki WHERE satsus=1
    UNION
    SELECT id,color,status,"tomato" FROM tomato WHERE status=1
    UNION
    .......
    
    Тут важно, чтобы количество столбцов совпадало во всех запросах. Столбец с данными типа "tomato" или "morkovki" я добавил, чтобы можно было как-то определить из какой таблицы выдались строки для дальнейшей обработки данных. Если это не нужно - опускайте.
     
    phillip нравится это.
  5. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    спасибо. ну это получается ведь лучше в плане оптимизации, чем 10 отдельных запросов?
     
  6. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    я бы предположил что 10 разных запросов все таки быстрее отработают и по памяти экономнее будут
     
    phillip нравится это.
  7. spid5

    spid5 Прохожие

    Какую СУБД используете? Почти во всех есть Предасталения. С пом. представления можно легко сделать любой запрос и он выдаст в sql.
     
  8. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    как это одно и то же? :eek:
    я думал чем больше запросов, тем хуже. думал что лучше делать один громоздкий чем много мелких

    по поводу субд- mysql использую. А что за представления, не совсем представляю, счас погуглю
     
  9. Maza

    Maza

    Регистр.:
    3 июл 2007
    Сообщения:
    255
    Симпатии:
    118
    Представления это, что то вроде маленькой програмки, которая принимает на вход параметры и выдаёт нужный результат, короче для пользователя выглядит как один запрос, а для сервера может быть n-количество запросов.
    Разницы нет, что 10 делать, что одним, потому что в этом одном будут содержаться все 10.
     
    phillip нравится это.