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

mysql:Jak dołączyć do stołu INNER JOIN, ale ograniczyć dołączenie do 1 wyniku z najwyższą liczbą głosów lub liczbą głosów?

SELECT a.*, b.*
  FROM Items a
       LEFT JOIN Votes b on a.item_id = b.item_id
                         and b.total_yes = (select max(total_yes) 
                                              from Votes v 
                         where v.item_id = a.item_id)
ORDER BY a.post_date DESC, b.total_yes DESC

Uwaga:jeśli masz dla pozycji 2 odpowiedzi z tą samą wartością total_yes =max, będziesz mieć 2 wiersze dla tej pozycji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zapisywanie CSV z kodowaniem UTF-16BE w PHP

  2. Zapytanie mysql działa po uruchomieniu w phpmyadminie, ale zwraca błąd po uruchomieniu w php

  3. Błąd Entity Framework Core:Wystąpił błąd podczas korzystania z połączenia z bazą danych „na serwerze „localhost”

  4. Jak uzyskać dostęp do mysql poza moim klastrem kubernetes?

  5. Czy poprawne jest skanowanie tabeli w MySQL za pomocą SELECT * .. LiMIT start, liczenie bez klauzuli ORDER BY?