|
|
|
|
|
для: lilu
(28.09.2006 в 18:04)
| | Всё правильно понимаете. Общее число строк вытаскиваете запросом
SELECT COUNT(*)
FROM table1
JOIN table2 ON table1.pole1=table2.pole1
WHERE table2.pole4='0' AND table1.pole2='dddddddddd'
|
А сами строки на конкретной странице - запросом:
SELECT table1.pole2, table1.pole3, table1.pole4 from table1, table2
FROM table1
JOIN table2 ON table1.pole1=table2.pole1
WHERE table2.pole4='0' AND table1.pole2='dddddddddd'
LIMIT $rows_per_page, $first_row
|
Как вариант, можно использовать
SELECT SQL_CALC_FOUND_ROWS
table1.pole2, table1.pole3, table1.pole4 from table1, table2
FROM table1
JOIN table2 ON table1.pole1=table2.pole1
WHERE table2.pole4='0' AND table1.pole2='dddddddddd'
LIMIT $rows_per_page, $first_row
|
и
последовательно идущие один за другим. Второй запрос выдаст число строк первого, как если б тот выполнялся без учета LIMIT. | |
|
|
|
|
|
|
|
для: Trianon
(28.09.2006 в 16:55)
| | тогда я не пойму! Если у меня есть таблицы например таблица людей и товаров, и мне надо вывести из базы только тех, кто купил товар1, я еств-но напишу запрос сост. из двух таблиц, кот. соед-ся по общему. полю, а уж потом мне надо взять получившееся кол-во строк и вычислять кол-во страниц при опред-ом кол-ве записей на каждой странице. Так же двумя запросами... Или я что-то не дотягиваю.... | |
|
|
|
|
|
|
|
для: lilu
(28.09.2006 в 13:43)
| | Так а число строк никак не зависит от того, к каким полям Вы обращаетесь.
Так или иначе число строк и сами строки придется извлекать двумя разными запросами. | |
|
|
|
|
|
|
|
для: Trianon
(28.09.2006 в 12:54)
| | про count я знаю, но мне нужен select table1.pole2, table1.pole3, table1.pole4, потому что потом я именно к этим полям обращаюсь далее, а count нужен для постраничной навигации | |
|
|
|
|
|
|
|
для: lilu
(28.09.2006 в 12:48)
| | >select table1.pole2, table1.pole3, table1.pole4 from table1, table2
>where table1.pole1=table2.pole1 AND table2.pole4='0' AND table1.pole2='dddddddddd';
>надо кол-во записей кот. в результате выводится
Количество записей добывается функцией count()
SELECT COUNT(*) FROM table1, table2
WHERE table1.pole1=table2.pole1 AND table2.pole4='0' AND table1.pole2='dddddddddd'
|
либо
SELECT COUNT(*)
FROM table1
JOIN table2 ON table1.pole1=table2.pole1
WHERE table2.pole4='0' AND table1.pole2='dddddddddd'
|
| |
|
|
|
|
|
|
| Вообщем смотрела я похожие примеры и запуталась совсем и как-то раньше не сталкивалась с подобными запросами, задача такая есть две таблицы table1 и table2. Запрос выглядит следующим образом :
select table1.pole2, table1.pole3, table1.pole4 from table1, table2
where table1.pole1=table2.pole1 AND table2.pole4='0' AND table1.pole2='dddddddddd';
надо кол-во записей кот. в результате выводится | |
|
|
|
|