2016-02-14 29 views
0

我有一個具體的查詢,我無法弄清楚如何完成。返回字段和計數在相同的SQL

我需要返回名爲Articulos的文章表的值,並計算每篇文章在每個預算中使用的次數。

我有一個名爲pre_detalle的細節表,其中包含一個名爲idart的字段,其中的articulos.id是在包含的情況下編寫的。

我需要每個計數器作爲cont_num返回。

這是我試圖發展查詢:

SELECT *, COUNT(articulos.id) as cont_num 
FROM articulos 
WHERE articulos.id IN(SELECT idart FROM pre_detalle) 
GROUP BY articulos.id 
ORDER BY cont_num 
+0

如果你想要的話,你不能通過GROUP BY來聚合這些字段。你應該列出你在'GROUP BY'中選擇的所有其他字段。 – Nicarus

回答

0

這是我需要做的,幾個小時後,經過很多嘗試,我設法讓它工作。 SELECT articulos。 ,(SELECT COUNT()FROM pre_detalle WHERE pre_detalle.idart = articulos.id)AS cont_num FROM articulos

+0

在選擇列表中使用子查詢應該是解決方案。 –

0

在大多數情況下,你需要計算你的顯示項的列表。
在大多數情況下,您將使用分頁系統來顯示您的數據行。
在大多數情況下,如果您嘗試使用相同的查詢執行此操作,它將會失敗。
因此,也許你應該考慮使用一個查詢來計算行數,另一個查詢來獲取所需的行數。

在大多數情況下,這個答案可以幫助你(以正確的方式)。

+0

我怎麼能做到這一點? – Pongr

+0

我推薦使用一個框架和一個ORM 一些查詢的子句改變了,但是這個子句是相同的,其他的東西可能是相似的。更改字段(*/COUNT(*))並將LIMIT設置爲結果列表的查詢。 – Loenix

相關問題