[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Два запроса или JOIN
AllesKlar
Вопрос больше теоретический. Поэтому во флейме smile.gif

Есть две таблицы.
Таблица stations, в которой данные по станциям
и
таблица owner, в которой данные по "владельцу" базы, в которой всего лишь одна запись.
В этой таблице так же есть поле central, в котором содержится id центральной станции из таблицы stations

Нужны все станции + знать, кто из них центральная.

Могу сделать двумя запросами.
Могу одним с JOIN-ном

Что смущает:
в первом варианте 2 запроса.
во-втором только у одной строки результата будет заполнено поле, все остальные будут просто болтаться с null.

Реорганизовать базу не предлагать smile.gif она не моя, что дали, с тем и работаем wacko.gif

Мнения есть?

_____________
[продано копирайтерам]
FatCat
Я бы сделал двумя запросами.

_____________
Бесплатному сыру в дырки не заглядывают...
sergeiss
Лично я сторонник минимального количества запросов smile.gif

Цитата (AllesKlar @ 24.09.2015 - 22:50)
во-втором только у одной строки результата будет заполнено поле, все остальные будут просто болтаться с null

Тут не понятно. Если те, что с null, не нужны, то отфильтровать их сразу же в запросе. А если они нужны, то в чем тогда проблема взять их и использовать?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
AllesKlar
sergeiss
user posted image

В третьем запросе все значения поля Zentrale будут null, кроме одной строки, которая соответствует центральной станции

_____________
[продано копирайтерам]
sergeiss
Ну так и напиши в 3-м запросе

... where Zentrale is not null

Может быть с префиксом таблицы.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
AllesKlar
Цитата (sergeiss @ 24.09.2015 - 22:12)
Ну так и напиши в 3-м запросе

... where Zentrale is not null

Может быть с префиксом таблицы.

Неее... мне нужен список ВСЕХ станций + знать, какая из них центральная.

where Zentrale is not null
вернет только центральную.

_____________
[продано копирайтерам]
sergeiss
А в чем тогда проблема, я не совсем понял? Не нравятся какие-то поля, ну так не выбирай их совсем.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
FatCat
Цитата (sergeiss @ 24.09.2015 - 22:33)
я сторонник минимального количества запросов

Я сторонник уменьшения времени генерации страницы и нагрузки на сервер.
По моему опыту, запрос с джойном к двум таблицам примерно вдвое дольше, чем запрос к одной таблице.

_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.