Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Независимая выборка
 
 автор: sl1p   (11.12.2008 в 23:34)   письмо автору
 
 

SELECT `flats`.*, `flats_img`.`url`, `flats_descr`.`list`
FROM `flats`, `flats_img`, `flats_descr`
WHERE flats.id = flats_img.flat_id and flats_img.url LIKE 'logo.%' and 
flats.id = flats_descr.flat_id and flats_descr.lang = $my_lang and 
flats.show = 1
ORDER BY flats.position


Вот так получается, если нет, например, в `flats_img` logo.%, то запрос не осуществляется вообще.
Как бы его так написать чтобы даже если нет данных в таблицах(`flats_img`, `flats_descr`) соответствующих `flats` то всё равно выбиралось бы независимо от этого `flats`.* ?

Заранее спасибо :)

  Ответить  
 
 автор: xx77   (12.12.2008 в 03:07)   письмо автору
 
   для: sl1p   (11.12.2008 в 23:34)
 

насколько соображаю , можно поставить таблицы в зависимость от первой ,той из которой оюязательны результаты, при помощи LEFT JOIN ... ON например.
и перенести условия из WHERE , в ON
, и GROUP BY
но что-то у mysql , бывает никак не получается ставить две таблицы в зависимость от одной
, а только по очереди :) поэтому кагбы может быть и не срастаться , но я-бы попробовал.

ато остаётся только использовать функции такие как IFNULL() или IF()
и подзапросы
:)

  Ответить  
 
 автор: sl1p   (12.12.2008 в 03:38)   письмо автору
 
   для: xx77   (12.12.2008 в 03:07)
 

Я конечно попробовал бы но ниразу не юзал ни LEFT JOIN ни ON :D
Был бы рад хотябы на примере запроса) дальше уже сам както потыкаю xD

  Ответить  
 
 автор: xx77   (12.12.2008 в 05:26)   письмо автору
 
   для: sl1p   (12.12.2008 в 03:38)
 

SELECT a.*, b.`url`, c.`list` 
FROM `flats` a 
 LEFT JOIN `flats_img` b ON b.flat_id = a.id AND b.url LIKE 'logo.%'
 LEFT JOIN `flats_descr` c ON c.flat_id = a.id AND  c.lang = $my_lang
WHERE a.show = 1
GROUP BY a.id

вроде так

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования