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
Форумы портала PHP.SU :: Версия для печати :: Помогите с запросом
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Помогите с запросом

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

1. Longi - 06 Августа, 2012 - 16:34:34 - перейти к сообщению
Всем привет, я вот уже минут 30 думаю и ковыряю инет, но так ничего и не наковырял... Нужна помощь))

Начнем со структуры:

Имеется таблица с заведениями, каждое заведение
относится к какойто группе

CODE (javascript):
скопировать код в буфер обмена
  1. institutes {
  2.    id,
  3.    title,
  4.    group_id
  5.    ...
  6.    ...
  7. }



так же есть таблица избранного, в которой хранятся id потребителя и id заведений

CODE (javascript):
скопировать код в буфер обмена
  1. consumer_favorite {
  2.    institute_id,
  3.    consumer_id
  4. }



так вот задача:

сначала я делаю вот так:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT GROUP_CONCAT(DISTINCT `institute_id`) FROM `consumer_favorite` WHERE `consumer_id` = ".Consumer->Id


тоесть получаю весь список избранных заведений(id) одного потребителя через запятую.

1,5,12,20 и тд

потом вот так

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `institute` WHERE `group_id` = ".$group." ORDER BY `".$sortBy."`"


тоесть получаю весь список заведений которые находятся в какойто группе и както отсортированны.

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

Пока что я для этого перебераю каждое заведение и регуляркой сравниваю id заведения с тем списком что я получил ранее.

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

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

 

Powered by ExBB FM 1.0 RC1