sql >> Database >  >> RDS >> Mysql

MYSQL JOIN op dezelfde tafel

Wanneer u filtert op een OUTER JOIN, moet u filteren in de ON-component of als een afgeleide tabel. Wanneer image.display_order = '1' is in de WAAR, het zal altijd een INNER JOIN zijn

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

of

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. Fout #2101:De string die wordt doorgegeven aan URLVariables.decode() moet een URL-gecodeerd zijn

  2. Trage MySQL-inserts

  3. PostgresSql:Twee tabellen vergelijken en het resultaat verkrijgen en vergelijken met de derde tabel

  4. Geavanceerd MySQL alfabetisch sorteren met voorvoegsel?