我在组合多行时遇到了一些问题。
目前有此查询:
SELECT TBLAgenda.ArtikelID, TBLArtikelen.ID, TBLArtikelen.Artikel,TBLAgenda.Plaats, TBLAgendaDatum.Datum, TBLAgendaDatum.Sessie
FROM TBLAgenda
INNER JOIN TBLArtikelen ON TBLAgenda.ArtikelID = TBLArtikelen.ID
INNER JOIN TBLAgendaDatum ON TBLAgenda.AgendaID = TBLAgendaDatum.AgendaID
现在,每个artikel都在某个日期的某个地方供应。 artikel和Plaats的组合是关键。一个artikel用于不同的'
。我需要的是一种用Artikel,Plaats和所有日期显示的方式。
目前这是结果的一部分:
Windows 10 in TORHOUT op 2016-01-05 00:00:00
Bestandsbeheer in BRUGGE op 2016-01-07 00:00:00
Windows 10 in TORHOUT op 2016-01-12 00:00:00
Windows 10 in TORHOUT op 2016-01-19 00:00:00
Windows 10 in TORHOUT op 2016-01-26 00:00:00
Windows 10 in TORHOUT op 2016-02-02 00:00:00
Bestandsbeheer in BRUGGE op 2016-01-14 00:00:00
Bestandsbeheer in BRUGGE op 2016-01-21 00:00:00
Android Smartphone/Tablet in OOSTENDE op 2016-01-01 00:00:00
Android Smartphone/Tablet in OOSTENDE op 2016-01-12 00:00:00
Android Smartphone/Tablet in OOSTENDE op 2016-01-19 00:00:00
Android Smartphone/Tablet in OOSTENDE op 2016-01-26 00:00:00
Android Smartphone/Tablet in OOSTENDE op 2016-02-02 00:00:00
Android Smartphone/Tablet in BRUGGE op 2016-01-08 00:00:00
Android Smartphone/Tablet in BRUGGE op 2016-01-15 00:00:00
Android Smartphone/Tablet in BRUGGE op 2016-01-22 00:00:00
Android Smartphone/Tablet in BRUGGE op 2016-01-29 00:00:00
Android Smartphone/Tablet in BRUGGE op 2016-01-05 00:00:00
Windows 10 in GENT op 2016-01-20 00:00:00
Windows 10 in KORTRIJK op 2016-01-21 00:00:00
Windows 10 in KORTRIJK op 2016-01-28 00:00:00
Windows 10 in KORTRIJK op 2016-02-04 00:00:00
Windows 10 in BRUGGE op 2016-01-28 00:00:00
Windows 10 in BRUGGE op 2016-02-04 00:00:00
WindowsPhone in OOSTENDE op 2016-02-16 00:00:00
WindowsPhone in OOSTENDE op 2016-02-23 00:00:00
WindowsPhone in OOSTENDE op 2016-03-01 00:00:00
WindowsPhone in OOSTENDE op 2016-03-08 00:00:00
所以我需要显示: Windows 10 - Torhout - 2016/01 / 05,2016 / 01 / 12,2016 / 01 / 19,2016 / 01 / 26,2016 / 02/02 Bestandsbeheer - 布鲁日 - 2016/01/14,2016 / 01/21 .......
答案 0 :(得分:1)
我认为您只想要group_concat()
和group by
:
SELECT ag.ArtikelID, ag.Plaats,
GROUP_CONCAT(d.Datum) as datums
FROM TBLAgenda ag INNER JOIN
TBLArtikelen ar ON ag.ArtikelID = ar.ID INNER JOIN
TBLAgendaDatum d
ON ag.AgendaID = d.AgendaID
GROUP BY ag.ArtikelID, ag.Plaats;
另请注意,使用表别名可以使查询更容易编写和读取。