Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête SQL pour sélectionner des lignes distinctes de la table de gauche après la jointure interne à la table de droite

Votre requête devrait ressembler à :

$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
"

Un peu d'explication. Lorsque vous joignez deux tables, vous obtenez toutes les lignes de la table sizes pour tous les id de la table products , donc id =1 joint à quatre enregistrements et id =2 joint à deux enregistrements. Vous devez donc regrouper ces chiffres dans un seul enregistrement.