WBS
Новичок
Хитрые вложенные запросы
Имеется две таблицы
abc
def
Нужно выбрать все записи и все поля из abc и получить некоторые данные из def, связявая таблицы по id.
Написать такое:
нельзя, т.к. таблица def может быть пустой, а нужно обязательно выбрать все записи из непустой abc.
Можно переписать так
или так
И это работает!
Но если запросить все сразу
то запрос не сработает. Как же быть?
Имеется две таблицы
abc
def
Нужно выбрать все записи и все поля из abc и получить некоторые данные из def, связявая таблицы по id.
Написать такое:
PHP:
SELECT R1.*, R2.* FROM abc R1, (SELECT count(*) as a, min(price) as b FROM def) R2 WHERE R1.id=R2.id
Можно переписать так
PHP:
SELECT R1.*, (SELECT count(*) FROM def WHERE R1.id=id) as a FROM abc R1
PHP:
SELECT R1.*, (SELECT min(price) FROM def WHERE R1.id=id) as b FROM abc R1
Но если запросить все сразу
PHP:
SELECT R1.*, (SELECT count(*) as a, min(price) as b FROM def WHERE R1.id=id) FROM abc R1