现在有一个小说信息表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=i.siteid GROUP BY i.id order by s desc limit 20
;
会报%100语法错误的错,因为章节表没法确定(有100个小说章节信息表),求大神解答如何实现这一需求
これは、インスタンスのデータベースにアクセスして 100 個のテーブルの情報を確認するだけです。どのテーブルに必要なデータが保存されているかがわからないため、すべてのテーブルを結合する必要があります。これは明らかに不合理であるため、ビジネス モデルではテーブル分割を使用する必要があります。たとえば、mycat を使用して、テーブル A と B を小説 ID に従ってテーブルに分割する必要があります。 mycat を選択し、A.id で A join B を直接選択します。 =B.id
だけです。テーブル名は変数であるため、SQL ステートメントを結合するには動的 SQL を使用する必要があります。