Помогите с запросом

chemax
На сайте с 07.01.2009
Offline
206
514

Имеется структура базы:

cat

id|title

catpost

id|catid|postid

post

id|post

это нужно для выбора нескольких категорий в новости.

Как можно выбрать все новости из категории?

Есть две идеи:

1. В цикле

2. Узнать первым запросом все postid и вторым запросом вытащить новости. Типа select * from post where id='1', 'id'=2, id='3'...

1 вариант имхо бред полный. нагрузка большая.

2 вариант оптимальный, но что если новостей в категории 100-500 ?

Качественный хостинг, VPS и сервера. (http://ihc.ru/?ref=569)
Skom
На сайте с 02.12.2006
Offline
165
#1

select * from post where id in (select postid from catpost where ....)

Cras amet qui numquam amavit quique amavit cras amet
Str01tel
На сайте с 27.12.2009
Offline
26
#2

ошибся........

skAmZ
На сайте с 04.09.2009
Offline
122
#3

Запрос вам уже написали.

chemax:
2 вариант оптимальный, но что если новостей в категории 100-500 ?

Смотря что нужно, можно сделать постраничный вывод:


$page_num=1;
$print_in_page=20;
select ..... from .... where ..... limit ($page_num-1)*$print_in_page, $print_in_page

Или просто первые N: "limit N"

P.S. это если речь идет о mysql :)

chemax
На сайте с 07.01.2009
Offline
206
#4

сделал вывод так:

SELECT * FROM catpost INNER JOIN post ON post.id = catpost.postid WHERE catpost.catid=$catid

все работает, но правильно ли?

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