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

左結合を1つの結果を返すように制限しますか?

    エラーは明らかです。サブクエリの終了後にサブクエリのエイリアスを作成する必要があります) ONで使用します すべてのテーブルは、派生または実数にかかわらず、独自の識別子を持っている必要があるため、句。次に、movie_idを含める必要があります サブクエリの選択リストで、それに参加できるようにします。サブクエリにはすでにWHERE popularity = 0が含まれているため 、結合のONに含める必要はありません 条項。

    LEFT JOIN (
      SELECT
        movie_id, 
        movie_name 
      FROM movies 
      WHERE popularity = 0
      ORDER BY movie_name
      LIMIT 1
    ) the_alias ON t1.movie_id = the_alias.movie_id
    

    外側のSELECTでこれらの列の1つを使用している場合 、the_alias.movie_nameから参照してください たとえば。

    要件をよりよく理解した後で更新します:

    参加するグループごとに1つを取得するには、集約MAX()を使用できます。 またはMIN() movie_idで サブクエリにグループ化します。サブクエリなしLIMIT 次に必要です-最初のmovie_idを受け取ります 名前ごとにMIN() または最後にMAX()

    LEFT JOIN (
      SELECT
        movie_name,
        MIN(movie_id) AS movie_id
      FROM movies
      WHERE popularity = 0
      GROUP BY movie_name
    ) the_alias ON t1.movie_id = the_alias.movie_id
    


    1. MySQLでNULLを無視するのではなく、NULLをMAX日付と見なすにはどうすればよいですか?

    2. R12.2アップグレードパート-1のステップバイステップのアップグレードプロセス

    3. SQLiteの結果をテーブルとしてフォーマットする方法

    4. SQLServerで壊れたオブジェクトを見つける