sql >> Databáze >  >> RDS >> Mysql

SQL dotaz pro výběr odlišných řádků z levé tabulky po vnitřním spojení s pravou tabulkou

Váš dotaz by měl znít takto:

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

Trochu vysvětlení. Když spojíte dvě tabulky, získáte všechny řádky z tabulky sizes pro všechna id z tabulky products , takže id =1 spojené se čtyřmi záznamy a id =2 spojené se dvěma záznamy. Takže musíte tato čísla agregovat do jednoho záznamu.




  1. Co je PostgreSQL?

  2. NoSQL:život bez schématu

  3. Vkládání dat blob v Javě pomocí PreparedStatement

  4. Jak modelovat strukturu MySQL, aby se vypořádala s autentizací? S oddělenými informacemi o uživatelích