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 :: Нужна помощь с SQL запросом

 PHP.SU

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


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

> Без описания
MXM
Отправлено: 01 Апреля, 2012 - 02:02:09
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2008  


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




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

По умолчанию для одного из типов страниц делается такой SQL запрос:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT SQL_BUFFER_RESULT mso_page.`page_id`
  2. FROM (`mso_page`)
  3. JOIN `mso_page_type` ON `mso_page_type`.`page_type_id` = `mso_page`.`page_type_id`
  4. JOIN `mso_meta` ON `mso_meta`.`meta_id_obj` = `mso_page`.`page_id`
  5. WHERE page_status =  'publish'
  6. AND page_type_name =  'cat_1'
  7. AND meta_key = 'tip_sdelki'
  8. AND meta_value = 'sale'
  9. GROUP BY `mso_page`.`page_id`
  10. ORDER BY `page_date_publish` DESC

Он всем хорош и замечателен, но мне необходимо сделать выборку (с соблюдением всех прочих условий) из таблицы mso_meta по нескольким meta_key и/или meta_value

Пробовал видоизменять запрос до вида:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT SQL_BUFFER_RESULT mso_page.`page_id`
  2. FROM (`mso_page`)
  3. JOIN `mso_page_type` ON `mso_page_type`.`page_type_id` = `mso_page`.`page_type_id`
  4. JOIN `mso_meta` ON `mso_meta`.`meta_id_obj` = `mso_page`.`page_id`
  5. WHERE page_status =  'publish'
  6. AND page_type_name =  'cat_1'
  7. AND ((meta_key = 'price') AND (meta_key = 'tip_sdelki' AND meta_value = 'sale'))
  8. GROUP BY `mso_page`.`page_id`
  9. ORDER BY `page_date_publish` DESC

Но он выдает ошибку.

Еще раз, задача заключается в том чтобы выбрать из таблицы mso_meta ID страниц у которых например meta_key = 'price' И (meta_key = 'tip_sdelki' И meta_value = 'sale') И ... может быть еще несколько таких И... В оконцовке чтобы была возможность сгруппировать их и отсортировать по любому из выбранных meta_value...

Таблица mso_page: http://shot[dot]qip[dot]ru/005BsF-200arWR/
Таблица mso_page_type: http://shot[dot]qip[dot]ru/005BsF-200arWT/
Таблица mso_meta: http://shot[dot]qip[dot]ru/005BsF-300arWS/
Скачать файл: maxsite.sql.zip
Скачан раз: 34

(Отредактировано автором: 01 Апреля, 2012 - 02:20:26)

 
 Top
LIME
Отправлено: 01 Апреля, 2012 - 02:33:49
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




OR
(Добавление)
meta_key = 'price' ИЛИ (meta_key = 'tip_sdelki' И meta_value = 'sale')
 
 Top
MXM
Отправлено: 01 Апреля, 2012 - 03:05:22
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2008  


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




LIME пишет:
OR
(Добавление)
meta_key = 'price' ИЛИ (meta_key = 'tip_sdelki' И meta_value = 'sale')

Пробовал... Выводит в результате все (4) записи соответствующие meta_key = 'price' ИЛИ (meta_key = 'tip_sdelki' И meta_value = 'sale')

Т.е. у меня (как можно увидеть на скринах БД) 3 шт соответствуют (meta_key = 'tip_sdelki' И meta_value = 'sale'), и 4 соответствуют meta_key = 'price'

P.S.: Вы не первый кто советует это "ИЛИ"

(Отредактировано автором: 01 Апреля, 2012 - 03:09:15)

 
 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