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

結果の列名として結合テーブルの列値を選択する

    PIVOTをしたいようです latitude およびlongitude 値。残念ながら、MySQLにはPIVOTがありません 関数ですが、CASEの集計関数を使用して複製できます。 ステートメント:

    SELECT p.ID, 
      p.post_title, 
      p.post_author,
      max(case when pm.meta_key='latitude' then pm.meta_value end) latitude,
      max(case when pm.meta_key='longitude' then pm.meta_value end) longitude
    FROM `wp_posts` p
    LEFT JOIN `wp_postmeta` pm
      on p.ID=pm.post_id 
    WHERE p.post_type='place' 
      AND (pm.meta_key='latitude' OR pm.meta_key='longitude') 
    GROUP BY p.ID, p.post_title, p.post_author
    ORDER BY p.ID ASC
    

    SQL Fiddle withDemo を参照してください。



    1. Oracleの既存のテーブルに自動インクリメントの主キーを追加します

    2. 無視されるMysqlインデックス

    3. EF-Code-Firstで主キー名を指定する方法

    4. 投票値に応じて記事情報を更新するようにcronジョブを設定します