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

Zapytanie SQL, aby wybrać różne wiersze z lewej tabeli po sprzężeniu wewnętrznym do prawej tabeli

Twoje zapytanie powinno wyglądać tak:

$query = "
    select t1.id, t1.title, t1.description, group_concat(t2.size SEPARATOR ",") as sizes
    from products as t1
       inner join sizes as t2 on t1.id=t2.id
    where t1.id in (select t3.id from sizes as t3 where t3.size in (".$size_list .")
    group by t1.id, t1.title, t1.description
"

Trochę wyjaśnienia. Kiedy łączysz dwie tabele, otrzymujesz wszystkie wiersze z tabeli sizes dla wszystkich id z tabeli products , więc id =1 połączone z czterema rekordami i id =2 połączone z dwoma rekordami. Musisz więc zebrać te liczby w jeden rekord.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pozwól użytkownikom MySQL tworzyć bazy danych, ale zezwalaj na dostęp tylko do własnych baz danych

  2. Powolne zapytanie MySQL z dołączeniem, mimo że EXPLAIN pokazuje dobry plan

  3. jak uzyskać wyniki mysql z dzisiejszej daty?

  4. Rekord klonu SQL z unikalnym indeksem

  5. Tylko jeden klucz ze złożonego klucza podstawowego jako klucz obcy