Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по запросу в несколько таблиц

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Вопрос по запросу в несколько таблиц
3d_killer
Отправлено: 30 Ноября, 2012 - 13:33:01
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Вот составил запрос работает прекрасно, но есть одно но, последняя запись:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. LEFT JOIN
  3.                                 table_photo
  4.                         ON
  5.                                 table_photo.object_id = table_apartment.object_id
  6.  

там много записей а мне нужно получить имеется хоть одно значение и отобразить например иконку что есть фото, а тут получается квартира начинает дублироваться в зависимости сколько фото к ней прицеплены, как можно это сделать?
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $STH = $DBH->prepare(
  3.                     "SELECT
  4.                                 table_apartment.*,
  5.                                 table_locality.*,
  6.                                 table_building_material.*,
  7.                                 table_object.*,
  8.                                 table_photo.*
  9.                         FROM
  10.                                 table_apartment
  11.                         LEFT JOIN
  12.                                 table_locality
  13.                         ON
  14.                                 table_locality.id = table_apartment.locality_id
  15.                         LEFT JOIN
  16.                                 table_building_material
  17.                         ON
  18.                                 table_building_material.id=table_apartment.material
  19.                         LEFT JOIN
  20.                                 table_object
  21.                         ON
  22.                                 table_object.id = table_apartment.object_id
  23.                         LEFT JOIN
  24.                                 table_photo
  25.                         ON
  26.                                 table_photo.object_id = table_apartment.object_id
  27.                         ");
  28.  

(Добавление)
или нужно делать отдельный запрос, пробовал limit 1 тогда выводится 1 квартира это не то
 
My status
 Top
caballero
Отправлено: 30 Ноября, 2012 - 13:40:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




поменяй таблицы местами


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
3d_killer
Отправлено: 30 Ноября, 2012 - 13:43:04
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




не понял а как мне тогда их связать?
 
My status
 Top
EuGen Администратор
Отправлено: 30 Ноября, 2012 - 13:44:22
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




3d_killer пишет:
LEFT JOIN
table_photo
ON
table_photo.object_id = table_apartment.object_id

->
CODE (SQL):
скопировать код в буфер обмена
  1. RIGHT JOIN
  2.                                 table_photo
  3.                         ON
  4.                                 table_photo.object_id = table_apartment.object_id

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
3d_killer
Отправлено: 30 Ноября, 2012 - 13:48:05
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




это получается у всех надо менять?
(Добавление)
ничего не получается Огорчение
 
My status
 Top
EuGen Администратор
Отправлено: 30 Ноября, 2012 - 14:11:45
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Увидел - у Вас много JOIN. Тогда, например, GROUP BY используйте
CODE (SQL):
скопировать код в буфер обмена
  1. GROUP BY table_apartment.id


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
3d_killer
Отправлено: 30 Ноября, 2012 - 14:13:33
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




не понял, извини
(Добавление)
как мне решить задачу то
 
My status
 Top
Panoptik
Отправлено: 30 Ноября, 2012 - 15:29:15
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT
  3.   a.*, l.*, b.*, o.*,  p.*
  4.  FROM table_apartment a
  5.  LEFT JOIN table_locality l
  6.    ON l.id = a.locality_id
  7.  LEFT JOIN table_building_material b
  8.    ON b.id=a.material
  9.  LEFT JOIN table_object o
  10.    ON o.id = a.object_id
  11.  LEFT JOIN table_photo p
  12.    ON p.object_id = a.object_id
  13.  GROUP BY p.object_id
  14.  

(Отредактировано автором: 30 Ноября, 2012 - 15:31:33)



-----
Just do it
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB