Ich habe 2 Tabellen, 1 heißt menu
und 1 heißt orderregel
. Eine orderregel
ist eine Datenbanktabelle, die in Geschäften verwendet wird, um bestimmte Produkte und die Menge zu speichern.SQL innere Verbindung wählen Feldliste
Ich habe dies für Menüs in einem Restaurant, die Leute können verschiedene Menüs bestellen und sie bekommen alle ihre eigenen Bestellregeln, die dann zu einer Bestellung hinzugefügt werden, die Sie am Ende bezahlen.
Also ich möchte die Menüs sehen, die pro Tabelle ausgewählt sind und die Menge, die sie ausgewählt werden.
Hier sind die zwei Tabellen:
|---------------------|-------------------------|
| Menu | Orderregel |
|---------------------|-------------------------|
| ID | Name | ID | Quantity | Menu_id |
|---------------------|-------------------------|
| 1 | Menu One | 1 | 3 | 1 |
| 2 | Menu two | 2 | 2 | 1 |
| 3 | Menu Three | 3 | 4 | 3 |
|---------------------|-------------------------|
Und mit einer SQL-Abfrage, die ich dieses Ergebnis erhalten möchten:
|---------------------|
| Result of query |
|---------------------|
| Menu Name|Quantity |
|---------------------|
| Menu One | 5 |
| Menu Two | 0 |
|Menu Three| 4 |
|---------------------|
Die SQL-Abfrage Ich habe zur Zeit ist:
SELECT SUM(orderregel.aantal) AS Aantal
FROM `orderregel`
WHERE menu_id IS NOT null
GROUP BY menu_id
Welches gibt mir dieses Ergebnis
|---------------------|
| Result of query |
|---------------------|
| Quantity |
|---------------------|
| 5 |
| 4 |
|---------------------|
Ich versuche jetzt herauszufinden, eine Abfrage, die den Namen und die Menge erhalten wird, wie in der obigen Tabelle gezeigt. Was ich versucht ist, dies zu tun:
SELECT menu.naam, quantity.aantal
FROM `menu`
INNER JOIN
(SELECT sum(orderregel.aantal) AS aantal
FROM orderregel
WHERE menu_id IS NOT null
GROUP BY menu_id) AS quantity
Aber diese Abfrage gibt mir in eine seltsame Art und Weise dupliziert, wie folgt aus:
|---------------------|
| Result of query |
|---------------------|
| Menu Name|Quantity |
|---------------------|
| Menu One | 5 |
| Menu Two | 0 |
|Menu Three| 5 |
| Menu One | 4 |
| Menu Two | 0 |
|Menu Three| 4 |
|---------------------|
Haben Sie eine Lösung? Dank
EDIT 1 habe ich vergessen, ich MySQL verwenden zu erwähnen, und ich versuchte, JOIN LEFT und OUTER JOIN, die sowohl die erro 1062
EDIT 2
SELECT menu.naam as 'Menu naam', sum(orderregel.aantal) as Aantal
FROM `menu`
LEFT JOIN orderregel on menu.id = orderregel. menu_id
WHERE order_id = '57'
GROUP BY menu_id
die order_id geben = '57' wird in meinem Code in eine Variable geändert, die auf dem ausgewählten Auftrag/Kunden basiert. Danke Jungs für die Hilfe
Der Schlüssel ist der "äußere Join" ... (Ich habe Sie nicht downvote) – sgeddes
@sgeddes. nur die Zeit für den Abschluss der asnwer .. – scaisEdge