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

MySQL изберете с подзаявка и LIMIT

Когато използвате WHERE условие в таблицата от дясната страна на LEFT JOIN (Външно съединяване), то на практика се превръща във INNER JOIN , защото WHERE клаузата трябва да отговаря на условията. Ето защо получавате само случаи, когато c.active = 1 .

Трябва да преместите WHERE условие за LEFT JOIN .. ON .. AND .. състояние:

SELECT
   p.id, c.id as category_id 
FROM
   (SELECT id FROM products p WHERE p.id > 6319055 ORDER BY id LIMIT 1000) prods 
LEFT JOIN 
   products p ON p.id = prods.id 
LEFT JOIN 
   categories c ON c.id = p.category_id 
                   AND c.active = 1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Често срещани въпроси и отговори за интервю за MySql за по-нови + опитни

  2. Как да свържете две таблици с ssp.class.php

  3. За какво е декларацията на сокета в Ruby on Rails database.yml?

  4. Какъв е най-добрият начин да съхранявате библията в SQL?

  5. SQL:Как да изберете един запис на ден, като приемем, че всеки ден съдържа повече от 1 стойност MySQL