Mysql
 sql >> база данни >  >> RDS >> Mysql

MYSQL JOIN на същата маса

Когато филтрирате по OUTER JOIN, трябва да филтрирате в клаузата ON или като производна таблица. Когато image.display_order = '1' е в WHERE, винаги ще бъде 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' ) 

или

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. Извикването на Ajax връща цялата страница, а не само стойността на ехо

  2. Как да преминете през datagridview 1 и да копирате резултатите от цикъла в datagridview2 в различна форма и DB таблица

  3. Изберете най-голямото число от таблицата на MYSQL с добавен префикс

  4. Филтриране на студенти, които все още не са преминали предмет

  5. Каква е разликата между utf8_general_ci и utf8_unicode_ci?