検索

ホームページ  >  に質問  >  本文

php - この複数テーブルの結合クエリの SQL を記述する方法は?

私の問題は下の図に示されているとおりで、データベースの構造とデータは以下のコード ブロックにあります。

< /p>

取得したい結果は次のとおりです。

テーブル構造とデータは次のとおりです

CREATE TABLE A(
id INT が NULL ではありません。
数値 INT NOT NULL
)CHARSET=utf8;

INSERT INTO A(id,num) VALUES(1,5),(2,7),(3,6);

テーブル B の作成(
援助 INT NOT NULL、
sid INT NOT NULL、
コンテンツ VARCHAR(20) NOT NULL
)CHARSET=utf8;

INSERT INTO B(aid,sid,content) VALUES(3,1,'A'),(3,2,'B'),(3,3,'C');

テーブルCの作成(
id INT が NULL ではありません。
時間 INT NOT NULL、
libs VARCHAR(20) NOT NULL
)CHARSET=utf8;

INSERT INTO C(id,time,libs) VALUES(2,18,'wagaga'),(3,16,'aaaa'),(1,15,'cc'),(3,17,'dddd') ,(4,14,'eeee'),(3,10,'ffff'),(3,11,'bbbb');

これでニーズは満たせますが、実行効率が低すぎます...

select * from
(
個別の選択
    a.id、a.num、b.aid、b.sid、b.content、c.id (cid、c.time、c.libs として)
から
    ああ
LEFT JOIN b b ON b.aid = a.id
LEFT JOIN c ON c.id = b.sid
WHERE a.id = 3
時間順 DESC
)TMPとして
GROUP BY cid ;

より効率的な書き方を提供できる専門家はいますか?

阿神阿神2759日前835

全員に返信(5)返信します

  • 習慣沉默

    習慣沉默2017-05-16 13:09:35

    リーリー

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:09:35

    リーリー

    上記のデータであれば、このSQLは満たされるはずです。 。 。ご満足いただけない場合は、気にしないでください...


    これは私のクエリ結果です

    返事
    0
  • 高洛峰

    高洛峰2017-05-16 13:09:35

    リーリー

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:09:35

    あなたが望むものは質問に明確に記載されていません。 。 。

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:09:35

    リーリー

    効率に問題があります..

    返事
    0
  • キャンセル返事