看板 PHP 關於我們 聯絡資訊
遇到一個難題,想請各位大大們幫忙一段SQL語法.. 使用mysql 有個table 裡面的data auto_id pid isbn book_name p_name 1 20 9781439854471 sexual danny2529 2 20 9781439854471 sexual chihche 3 20 9780805864618 handbook danny2529 4 20 9780805864618 handbook chihche 5 20 9781848728844 social danny2529 select 這個表單 pid=20 印出全部另外多一個num欄位紀錄count(isbn) 變成 auto_id pid isbn book_name p_name num 1 20 9781439854471 sexual danny2529 2 2 20 9781439854471 sexual chihche 2 3 20 9780805864618 handbook danny2529 2 4 20 9780805864618 handbook chihche 2 5 20 9781848728844 social danny2529 1 用過 select a.*,(select count(b.isbn) from table b where pid='20' AND a.isbn=b.isbn) from table a where pid='20' 但是數度之慢 也改用 inner join+group by 的方式 但是會變成只顯示出3筆資料(就是重複的合起來了) 請問大大有什麼方式能寫出這種需求嗎?? 目前有拉一個function出來算num 可是更慢... 因為資料都是好幾千筆的....使用者可能會瘋掉 感謝各位大大了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.119.126.67
Bambe:SELECT *, count(isbn) AS num FROM table WHERE pid = '20' 08/07 14:29
Bambe: GROUP BY isbn; 08/07 14:29
這id 1 2會合併 3 4 也會 但是我要全部都顯示出來@@ 就如第二個那樣 謝謝你的回復 ※ 編輯: danny2529 來自: 120.119.126.67 (08/07 15:19)
kosjason:剛剛上面那個GROUP BY isbn, p_name(補上這個就不會合併) 08/07 16:55