Re: [SQL ] select-in 與 limit的問題
是要找出每個分類當中未有回應的文章, 各抓(最多)3筆當做代表?
第一道SQL:
select distinct type
from article
where fid=0;
撈出type值, 再由host language(例如 PHP)透過迴圈控制, 將每個type
值逐一地代入到第二道SQL:
select *
from article
where type=$type and fid=0
limit 0,3;
拆成兩道, 結構清楚邏輯簡單, 這就能夠達到目的.
以上僅供參考, 應該普遍會這麼用吧? 若要僅用一道SQL就達到目的
的話, 可能要用到mysql流程控制的語法, 就等高手來示範..XD
※ 引述《philgood (感覺好)》之銘言:
: 小弟我用的是mysql 但遲遲沒辦法突破這個query
: 我手上有一個文章的資料表 叫作 article
: id fid type name
: 1 0 1 a
: 2 0 1 b
: 3 0 1 c
: 4 0 1 d
: 5 0 2 e
: 6 0 2 f
: 7 0 2 g
: 8 0 3 h
: 9 0 3 i
: 10 0 3 j
: 11 0 3 k
: 12 1 4 l
: 13 1 4 m
: 基本上,會依照type分群組,
: 那目前可以看到type有1 2 3 4 總共4個分類。
: 那我今天想作一個頁面,他會根據fid取出所有子分類,
: 並取出該分類底下的前3項資料,今天先預設fid為0。
: 所以他取出來的type 應該是1.2.3
: 而id 應該是從1到10
: 我想問說 有沒有辦法根據類別去取出最多3項的資料
: 也就是不要第4筆。
: 我目前只寫到下面這個query而已 就不知道怎麼繼續了...
: SELECT *
: FROM article
: WHERE type IN (select distinct type from article where fid=0)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.115.151.184
※ 編輯: bobju 來自: 58.115.151.184 (10/22 01:19)
推
10/22 01:19, , 1F
10/22 01:19, 1F
推
10/22 01:24, , 2F
10/22 01:24, 2F
推
10/22 08:23, , 3F
10/22 08:23, 3F
→
10/22 12:31, , 4F
10/22 12:31, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):