sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man ét sæt data fra en SQL-forespørgsel fra flere tabeller?

Jeg vil forsøge at besvare kun ved hjælp af SQL.

Brug group_concat med distinct,

select t.id,name,phone,
 group_concat(distinct a.addr separator ',') as address,
 group_concat(distinct c.cat separator ',') as category
  from table1 t
  left join address a 
    on t.id = a.refid
  left join category c
    on t.id = c.refid
  group by t.id,name, phone

ELLER

Som inline kolonne,

select t.id,name,phone,
 (select group_concat(a.addr separator ',')
    from address a 
   where a.refid = t.id) as address,
 (select group_concat(c.cat separator ',') 
    from category c
   where c.refid = t.id) as category
  from table1 t

Reference Db<>violin



  1. SQL-forespørgsel for GROUP BY, returnerer grupper, der matcher betingelserne for LEAST, COALESCE

  2. Giv privilegier til alle brugere, nuværende og fremtidige

  3. mysql, utf-8 kolonne:hvordan vælger man kun forskel på store og små bogstaver?

  4. Uafhængig af store og små bogstaver REPLACE til MySQL