Вопрос по SQL запросу

Veseliy
На сайте с 28.11.2012
Offline
68
371

Всем привет.

В SQL не силен, но обычные дефолтные задачи решал. Делаю запрос в БД WP.

В WP есть 1 таблица postmeta в которой храниться значения допполей.

SELECT * FROM wpbz_posts p,wpbz_postmeta pm

WHERE p.id=pm.post_id AND p.post_status='publish' AND p.post_type='post'

AND (pm.meta_key='type' AND pm.meta_value='Аренда') ! и одновременно

AND (pm.meta_key='raspolojenie' AND pm.meta_value='Харьковская область')

И так 6 параметров будет.

Подскажите на что смотреть. Может оператор какой есть?

---------- Добавлено 07.02.2013 в 17:46 ----------

Уже решил сам:bl:

Не знаю по феншую ли так делать,но решил так:

SELECT * FROM wpbz_posts p,wpbz_postmeta pm,wpbz_postmeta pm2

WHERE (pm.meta_key='type' AND pm.meta_value='Аренда') AND (pm2.meta_key='raspolojenie' AND pm2.meta_value='Харьковская область')AND p.id=pm.post_id AND p.post_status='publish' AND p.post_type='post'

ЗЫ: Правда вместо * придеться перечислять все поля + DISTINCT по id

IL
На сайте с 20.04.2007
Offline
435
#1
Veseliy:
ЗЫ: Правда вместо * придеться перечислять все поля + DISTINCT по id

Можно указать алиас одной таблицы, если только она нужна..

 select p.*

И не хватает

 AND p.id=pm2.post_id
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
C
На сайте с 04.02.2005
Offline
291
#2

но при таком запросе выберутся записи, которые есть одновременно и в

posts и в postmeta pm , и postmeta pm2

откройте для себя LEFT JOIN

Veseliy
На сайте с 28.11.2012
Offline
68
#3
Chukcha:
но при таком запросе выберутся записи, которые есть одновременно и в
posts и в postmeta pm , и postmeta pm2

откройте для себя LEFT JOIN

Спасибо, за совет пошел читать доки.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий