Sorry über die Titel, wie ich bin neu in SQL und ich weiß nicht, wie das Problem angemessen ...SQL Many-to-many mehr Artikel pro Spalte
Ich habe 5 Tabellen zu erklären.
Lieferung
ID | Time |
---------------|
1 | 1999-01-01|
2 | 1999-01-01|
3 | 1999-01-01|
Delivery_Items
Delivery_ID | Order_ID|
----------------------|
1 | 1 |
2 | 2 |
3 | 3 |
Lebensmittel
ID | Name | Price |
-------------------|
1 |Eggs | 3.00 |
2 |Bacon | 1.50 |
3 |Ham | 4.00 |
Ordered_Items
Order_ID | Item_ID |
--------------------|
1 | 1 |
1 | 1 |
1 | 2 |
1 | 3 |
2 | 2 |
2 | 1 |
3 | 3 |
Bestellungen 0
ID | Total_Price |
------------------|
1 | 11.50 |
Ich mag würde sie miteinander verbinden, um ein erwartetes Ergebnis von etwas wie diese
Delivery_ID | Food.Name | Total Price |
----------------------------------------------------|
1 |Eggs, Eggs, Bacon, Ham| 11.50 |
2 |Bacon, Eggs | 4.50 |
3 |Ham | 4.00 |
Bisher habe ich versucht:
SELECT
O.Id,
GROUP_CONCAT(F.Name
SEPARATOR ','),
O.Total
FROM
Food F
LEFT OUTER JOIN
Ordered_Items OI ON OI.Item_ID = F.Id
LEFT OUTER JOIN
Orders O ON O.Id = OI.order_Id
GROUP BY O.Id;
die in
ErgebnisseDelivery_ID | Food.Name | Total Price |
-------------------------------------------------------------|
NULL |Eggs, Bacon, Ham(trash values) | NULL |
1 |Eggs, Eggs, Bacon, Ham | 11.50 |
2 |Bacon, Eggs | 4.50 |
3 |Ham | 4.00 |
Wie entferne ich diese erste NULL-Zeile? Und durch Trash-Werte meine ich, dass ihre IDs in keiner Ordered_Items Zeile erscheinen.
Was haben Sie bisher versuchen? –
Ist "Item_ID" in Ihren Bestellartikeln die ID des Lebensmittels? –
Ja, die Item_ID in den bestellten Artikeln ist die ID des Essens – randomehh