Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос-выборка постов из базы WordPress / 4 сообщений из 4, страница 1 из 1
16.08.2013, 21:34:31
    #38369477
Запрос-выборка постов из базы WordPress
Приветствую
В базе есть таблицы
wp_posts
В ней все посты, с названием, полной новостью итд

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


Также есть таблица
wp_term_relationships


И таблица wp_terms


Для выборки всех постов, у которых в поле wp_terms есть "Феодосия" я использую такой запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT post_title,post_content FROM wp_posts WHERE id IN (SELECT object_id from wp_term_relationships WHERE term_taxonomy_id IN (SELECT term_taxonomy_id 
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
WHERE tt.taxonomy
IN (
'location'
)
AND name="Феодосия"
ORDER BY t.name ASC))



Долго мучался, но вроде правильно работает запрос.
А как составить этот же запрос но, чтобы выбирались, скажем, в этом городе, но еще и только wp_terms.slug (то есть, walk,aboard,fly,drive) я не могу. Помогите пожалуйста его составить.
...
Рейтинг: 0 / 0
17.08.2013, 12:52:05
    #38369678
Запрос-выборка постов из базы WordPress
Илья Васильев,

--------------------------------------------------------
Задача решается использованием библиотеки вордпресса WP_Query
...
Рейтинг: 0 / 0
17.08.2013, 13:25:37
    #38369687
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос-выборка постов из базы WordPress
Илья ВасильевА как составить этот же запрос но, чтобы выбирались, скажем, в этом городе, но еще и только wp_terms.slug (то есть, walk,aboard,fly,drive)
что бы был ЛЮБОЙ из wp_terms.slug = walk,aboard,fly,drive ?
или ВСЕ wp_terms.slug = walk,aboard,fly,drive ?

исходный запрос, вроде так "по-людски"
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT a.post_title, a.post_content 
FROM wp_posts a
inner join wp_term_relationships b
	on	a.id=b.object_id
inner join wp_terms t
	on	b.term_taxonomy_id=t.term_taxonomy_id 
INNER JOIN wp_term_taxonomy AS tt 
	ON t.term_id = tt.term_id
where (tt.taxonomy='location' and t.name='Феодосия')


если с ним всё правильно, то для "ЛЮБОЙ из wp_terms.slug", будет так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT a.post_title, a.post_content 
FROM wp_posts a
inner join wp_term_relationships b
	on	a.id=b.object_id
inner join wp_terms t
	on	b.term_taxonomy_id=t.term_taxonomy_id 
INNER JOIN wp_term_taxonomy AS tt 
	ON t.term_id = tt.term_id
where	(tt.taxonomy='location' and t.name='Феодосия')
or	(tt.taxonomy='listingtype' and t.slug in('walk','aboard','fly','drive'))

group by a.post_title, a.post_content
having count(distinct tt.taxonomy)=2
...
Рейтинг: 0 / 0
23.08.2013, 00:17:08
    #38375344
Запрос-выборка постов из базы WordPress
Спасибо за ответ
Вопрос решился средствами вордпресс библиотеки WP_Query
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос-выборка постов из базы WordPress / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]