Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MYSQL JOIN di tabel yang sama

Saat Anda memfilter pada OUTER JOIN, Anda harus memfilter dalam klausa ON atau sebagai tabel turunan. Ketika image.display_order = '1' ada di MANA, itu akan selalu menjadi INNER JOIN

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' ) 

atau

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan kolom yang berisi nilai yang diberikan di MySQL

  2. Muat informasi secara dinamis ke modal Twitter Bootstrap

  3. mysql mendapatkan nama kolom tabel dalam urutan abjad

  4. Bagaimana mendefinisikan pesanan ORDER BY khusus di mySQL

  5. MYSQL - Pesan nilai stempel waktu secara berurutan, dari yang terbaru ke yang terlama?