joehosch: Unterabfrage lieferte mehr als einen Datensatz zurück - was sonst?

Beitrag lesen

Hallo,

Ich habe zwei Tabellen, die ich mit Hilfe einer Dritten verlinkt haben (s.u.)

1 Lieder
2 Veranstaltungen
3 Jointabellle 

Ich möchte in einer Abfrage die Lieder ausgeben und wann sie bereits in einer Veranstaltung gesungen worden sind. Mit

SELECT *
FROM `xlieder`
left join xjvl on xjvl.idl=xlieder.id
where xlieder.id=6
order by xlieder.id

bekomme ich eine Abfrage für Lied nr 6 in der die Datensätze doppelt sind.

id|title|idv|idl 6|eieiDeius|1|6 6|eieiDeius|2|6

ich möchte aber haben:

id|title|idv|idl 6|eieiDeius|1,2|6

ich habe keine Ahnung wie ich das realisieren könnte. (Dabei kann natürlich das Lied auch in Veranstaltung 6,8 usw gesungen worden sein.)

gefunden habe ich auch nur das folgende, das mir aber auch nicht weiter hilft.

Danke für das bereits angeschnittene Problem in

https://forum.selfhtml.org/self/2018/jan/25/mysql-abfrage-ueber-zwei-tabellen-ausgabe-verschiedener-titel-aus-der-tabelle/1712717#m1712717

Meine Datenbank

CREATE TABLE `xlieder` (
  `id` int(11) NOT NULL,
  `title` text COLLATE latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
INSERT INTO `xlieder` (`id`, `title`) VALUES
(1, 'ararwarnd '),
(2, 's s as r d'),
(3, 'r r er r d'),
(4, 'llllallve '),
(5, 'ibibeib bl'),
(6, 'eieiDeius '),
(7, ' F Fe F di'),
(8, ' F Fe F di'),
(10, 'gegerge Mo'),
(11, 'dede deein'),
(12, 'asaswases '),
(13, 'wawa waes,'),
(14, ' k ke kEnd'),
(15, ' g gg gzin'),
(16, 'g,g,ng,etu'),
(17, 'n n In er ');
ALTER TABLE `xlieder`   ADD PRIMARY KEY (`id`);
ALTER TABLE `xlieder`   MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=840;
COMMIT;

CREATE TABLE `xveranstaltung` (
  `id` int(11) NOT NULL,
  `datum` date NOT NULL,
  `zeit` time NOT NULL,
  `typ` text COLLATE latin1_german2_ci NOT NULL,
  `titel` text COLLATE latin1_german2_ci NOT NULL,
  `ort` text COLLATE latin1_german2_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
INSERT INTO `xveranstaltung` (`id`, `datum`, `zeit`, `typ`, `titel`, `ort`) VALUES
(1, '2018-09-10', '10:30:00', 'Typ', 'titel', 'Ort'),
(2, '2018-09-20', '10:30:00', 'Typ', 'titel', 'Ort'),
(3, '2018-09-30', '10:30:00', 'Typ', 'titel', 'Ort'),
(4, '2018-10-10', '10:30:00', 'Typ', 'titel', 'Ort');
ALTER TABLE `xveranstaltung`  ADD PRIMARY KEY (`id`);
ALTER TABLE `xveranstaltung`  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
COMMIT;

CREATE TABLE `xjvl` (
CREATE TABLE `xjvl` (
  `idv` int(11) NOT NULL,
  `idl` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
INSERT INTO `xjvl` (`idv`, `idl`) VALUES
(1, 6),
(1, 5),
(1, 3),
(1, 2),
(2, 6),
(2, 3),
(2, 17);
COMMIT;

Schade, dass laut Vorschau die Seite keinen Zeilenumbruch unterstützt, sondern nur einen Absatzumbruch.