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

Jak przekonwertować zależne podzapytanie, aby dołączyć, aby uzyskać lepszą wydajność?

Najpierw wypróbuj to zapytanie -

SELECT
  t.*, ti1.*
FROM
  themes t
JOIN theme_images ti1
  ON ti1.theme_id = t.theme_id
JOIN (SELECT theme_id, MIN(image_id) image_id FROM theme_images GROUP BY theme_id) ti2
  ON ti1.theme_id = ti2.theme_id AND ti1.image_id = ti2.image_id
ORDER BY 
  t.theme_date_last_modification DESC
LIMIT 10

Jeszcze jedno rozwiązanie -

SELECT
  t.*, ti.*
FROM
  themes t
JOIN (SELECT * FROM theme_images ORDER BY image_id) ti
  ON ti.theme_id = t.theme_id
GROUP BY
  theme_id 
ORDER BY 
  t.theme_date_last_modification DESC
LIMIT
  10

Następnie dodaj filtr WHERE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy programiści PHP powinni używać procedur składowanych MySQL?

  2. Wymuś hibernację, aby utworzyć tabele po upuszczeniu i odtworzeniu bazy danych

  3. PHP mysql_connect ustawiony wait_timeout

  4. Czy można zapobiec wstrzyknięciu SQL za pomocą tylko addslashes(string)?

  5. Jak uruchomić zapytanie MYSQL we wcześniej określonym, ustalonym czasie?