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

同じテーブル上のMYSQLJOIN

    OUTER JOINでフィルタリングする場合は、ON句でフィルタリングするか、派生テーブルとしてフィルタリングする必要があります。 image.display_order = '1'の場合 WHEREにある場合は、常にINNERJOINになります

    SELECT 
      topic.content_id, 
      topic.title, 
      image.location 
    FROM 
      mps_contents AS topic 
      LEFT JOIN
      mps_contents AS image ON topic.content_id = image.page_id
                 AND image.display_order = '1'  
    WHERE 
      topic.page_id = (SELECT page_id FROM mps_pages WHERE page_short_name = 'foo' ) 
    

    または

    SELECT 
      topic.content_id, 
      topic.title, 
      image.location 
    FROM 
      mps_contents AS topic 
      LEFT JOIN
      (
       SELECT *
       FROM mps_contents
       WHERE display_order = '1'
      ) AS image ON topic.content_id = image.page_id
    WHERE 
      topic.page_id = (SELECT page_id FROM mps_pages WHERE page_short_name = 'foo' ) 
    



    1. mySql REGEXPの論理AND演算子?

    2. Linux上のDelphiをSQLServerに接続する

    3. ベストマッチによるMySQLの順序

    4. PHPでmysqlクエリをループするにはどうすればよいですか?