sql >> データベース >  >> RDS >> Mysql

クエリ結果にサブクエリを作成しますか?

    これを試してください:

    SELECT a.name_surname,GROUP_CONCAT(Distinct w.word Order by w.word asc) AS words
    FROM (
      SELECT f1.asked_user_id AS friend_id,
           f1.created,
           u.name_surname,
           u.avatar
      FROM friends AS f1 
      INNER JOIN friends AS f2 ON f1.asked_user_id = f2.asker_user_id
      INNER JOIN users AS u ON f1.asked_user_id = u.id
           AND f1.asker_user_id = f2.asked_user_id
           AND f1.asker_user_id = 1
      WHERE f1.status = 1 AND f2.status = 1
    ) a
    LEFT JOIN connections c ON c.user_id = a.friend_id 
    LEFT JOIN words_en w ON c.word_id = w.id
    GROUP BY 1;
    

    sqlfiddleデモ

    元のクエリを使用して、そのクエリをテーブル(a)およびLEFT JOINとして処理しました。 connectionsでそれを テーブル。次に、LEFT JOIN connections words_enを含むテーブル 目的の単語に到達するためのテーブル。これにより、接続や単語がない場合でも、元のクエリから戻るすべてのユーザーを取得できます。




    1. Memcache-mysqlの結果を保存する

    2. データベースホスティングコストの削減:DigitalOcean vs. AWS vs. Azure

    3. MySQLデータベースにファイルを挿入する方法は?

    4. 連続するレコードを日付でグループ化するOracleSQLクエリ