2017-11-03 4 views
0

Ich habe in den folgenden Tabellen in mysqlConcat zwei Strings mit dem gleichen FK

table payment_enum(
id int PK, 
name text, 
category_id int FK to category 
) 

table category(
id int PK, 
category_name text 
) 

Was ich will, ist: in payment_enum seine posible zwei Spalte mit Unterschied Namen zu haben, aber mit dem gleichen category_id Zum Beispiel:

select * from payment_enum 
pk name category_id 
1 'first' 2 
2 'second' 2 

und die Kategorie mit PK = 2 hat den Namen ‚Laptops‘ Ist es möglich, Abfrage zu verwenden, das folgende Ergebnis

produzieren

Pseudo Abfrage

select c.name,c.pk, e.name as (concat (e.name,concat(',',select e2.name where e2.name like e.name from payment_enum as e2))) 
from category as c and payment_enum as e 

Antwort

0

versuchen:

select c.name as category_name ,c.pk as category_PK , GROUP_CONCAT(p.name) as enum_names from 
(select * from category) as c 
left JOIN 
(select * from payment_enum) as p 
on c.id = p.category_id GROUP BY c.name,c.pk 
0

Sie benötigen group_concat statt concat dieser

select c.name,group_concat(e.name) as enum_names 
from category as c 
left join payment_enum as e on c.id = e.category_id 
group by c.name 
Verwandte Themen