Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL JOIN na tym samym stole

Podczas filtrowania na OUTER JOIN należy filtrować w klauzuli ON lub jako tabela pochodna. Gdy image.display_order = '1' jest w GDZIE, zawsze będzie 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' ) 

lub

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. Jak często występują pola TIMESTAMPS w polach DATETIME?

  2. Jak uzyskać wyniki z zapytania, jeśli wybrana data jest pomiędzy dwiema datami?

  3. mysql:jak sumować pomnożone częściowe

  4. Jak zdobyć skrypt do tworzenia tabel w MySQL Workbench?

  5. odległość sortowania w MySQL PHP