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

mysqlステートメントで「as」を使用すると不明な列エラーが発生する

    as 列エイリアス(この場合はother_id)を作成します )、および列エイリアスに参加することはできません。 ORDER BYでエイリアスを使用できます ただし、エイリアスがサブクエリからのものでない限り、他にはありません。

    ここでの最善のオプションは、IFを繰り返すことです。 結合の機能:

    SELECT
      a.id,
      a.from member_id,
      a.to member_id,
      IF(a.from member_id=1, a.to member_id, a.from member_id) as other_id,
      a.text,
      MAX(a.date sent) as date sent
    FROM message a
    JOIN members m on IF(a.from member_id=1, a.to member_id, a.from member_id) = m.id
    WHERE (a.from member_id=1 OR a.to member_id=1) AND a.active=1
    GROUP BY other_id
    ORDER BY other_id DESC, date sent DESC
    



    1. PHPがSQL構文を実行せずに検証する方法はありますか?

    2. PostGISのバッファ(円)

    3. Postgresデータ型キャスト

    4. Codeigniter:order句の列'id'があいまいです