|
|
|
| Вопрос такой. Можно ли сделать выборку из БД одной таблицы, но с разными параметрами одним запросом?
Задача такая.
Есть главная страница сайта, на которой 3 вкладки на Ajax:
«Новые» «Популярные» «Комментируемые»
Все это из таблицы НОВОСТИ. Можно ли сделать выборку определенного количества новостей одним запросом, но с разными параметрами (10 новых, 10 самых просматриваемых, 10 самых комментруемых). И если можно то, каким образом? | |
|
|
|
|
|
|
|
для: allforweb
(22.01.2011 в 16:55)
| | нельзя | |
|
|
|
|
|
|
|
для: allforweb
(22.01.2011 в 16:55)
| | не нужно.
Как не нужно, к примеру, в одном технологическом процессе выдерживать сыр Пармезан, делать торт "Птичье молоко" и готовить печено вепрево колено. | |
|
|
|
|
|
|
|
для: Trianon
(22.01.2011 в 17:26)
| | Я тоже так думаю, но все ратуют за уменьшение количества запросов к базе, вот я и спросил.
И еще вопрос в контексте - хранимые процедуры смогут решить эту задачу? | |
|
|
|
|
|
|
|
для: allforweb
(22.01.2011 в 17:37)
| | >Я тоже так думаю, но все ратуют за уменьшение количества запросов к базе, вот я и спросил.
1. не все. Я не ратую? Значит не все.
2. Есть довольно много заблуждений, которые разделяют если не все, то большая часть. И что - повод?
>И еще вопрос в контексте - хранимые процедуры смогут решить эту задачу?
какую - эту?
упихать носколько запросов в один? возможно
снизить нагрузку на сервер? сомнительно.
успокоить всех, кто ратует? врядли | |
|
|
|
|
|
|
|
для: Trianon
(22.01.2011 в 17:49)
| | Как-то так можно:
SELECT n.id AS new,p.id AS popular,c.id AS comments
FROM news AS n
LEFT JOIN (SELECT id FROM news) as p
LEFT JOIN (SELECT id FROM news) as c
?
Возможно с применением GROUP_CONCAT(p.id SEPARATOR '; ') и потом разделение в массив средствами пхп... | |
|
|
|
|
|
|
|
для: kosta_in_net
(24.01.2011 в 10:37)
| | JOIN без ON - это не то, что можно показывать в качестве абстрактного примера. (cartesian product не в счет) | |
|
|
|
|
|
|
|
для: Trianon
(24.01.2011 в 11:58)
| | Это даже не пример. Это... шальная мысль. Поинтересовался, можно ли сделать как-то так, или нет | |
|
|
|