搜尋

首頁  >  問答  >  主體

php - mysql 一張表格根據另一張表格的欄位數量排序查詢

現在有一個小說資訊表A(只是小說的匯總資訊),小說的章節資訊會放在小說id%100的那張表B上(比如A表小說id為1245,那它的章節數據就會放在chapter_45這張表上,小說資訊會以id隨機分佈在100張上),現在我想查尋出以B表上章節數量(count(*))倒序排列的A表小說信息,我寫了sql語句:
select i.id,i.siteid,count(*) as s from ptcms_novelsearch_info as i join ptcms_novelsearch_chapter_i.id%100 as c on c.novelid = i.id and c.siteid=UP.site. id order by s desc limit 20;
會報%100語法錯誤的錯,因為章節表沒法確定(有100個小說章節資訊表),求大神解答如何實現這一需求

滿天的星座滿天的星座2758 天前506

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-05-16 13:00:36

    這個就是水平分錶的概念了吧直接去一個實例的一個庫查100張表的信息你必須union所有的表去查因為你不知道哪些表保存的是你要的數據mysql自己就更不知道了這顯然是不合理的所以你這樣的業務模式應該使用分錶處理比如借助mycat A和B表都按照小說id分錶,你只需要在mycat裡配置好然後直接select A join B on A.id =B.id即可

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:00:36

    由於表名是變數,不能直接使用.你應該使用動態sql去拼接sql語句.

    回覆
    0
  • 取消回覆