Die Datenbank befindet sich unter: http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all. Insbesondere möchte ich die Liste der Kunden erhalten, die im Juli 1996 bei Speedy Express Shipping Company Produktbestellungen aufgegeben haben und von Mitarbeitern bedient wurden: Davolio Nancy und Peacock Margaret. Das Ergebnis sollte:Ich möchte w3school Datenbank abfragen
- Name des Kunden, Kontakt, Anschrift, Stadt, Postleitzahl und Land
- Die orderDetailID sie
- Kontakte der Reederei
- Produktname, Preis und Menge platziert
- Produktname, Preis und Einheiten gekauft
- Kategorie der Produkte
Hier ist meine Frage:
SELECT
c.CustomerName,
c.ContactName,
c.Address,
c.City,
c.PostalCode,
c.Country,
o.OrderDetailID,
s.Phone,
r.ProductName,
r.Price,
o.Quantity,
g.CategoryName
FROM Customers c
JOIN Orders d
on (c.CustomerID = d.CustomerID)
LEFT JOIN OrderDetails o
on (o.OrderID = d.OrderID)
LEFT JOIN Shippers s
on (s.ShipperID = d.ShipperID)
LEFT JOIN Products r
on (r.ProductID = o.ProductID)
LEFT JOIN Categories g
on (g.CategoryID = r.CategoryID)
LEFT JOIN Employees e
on (e.EmployeeID = d.EmployeeID)
WHERE s.ShipperName = 'Speedy Express' AND
((e.LastName = 'Davolio' AND e.FirstName = 'Nancy') OR
(e.lastName = 'Peacock' AND e.firstName = 'Margaret')) AND
EXTRACT(YEAR_MONTH FROM d.OrderDate) = 199607;
-I-Fehler erhalten, die sagt:
ERROR 1: Could not prepare statement (1 near "FROM": syntax error)
Wenn ich entfernen Sie die letzte Bedingung (der das Datum Extrahieren) wie folgt:
SELECT c.CustomerName, c.ContactName, c.Address, c.City, c.PostalCode, c.Country, o.OrderDetailID, s.Phone, r.ProductName, r.Price, o.Quantity, g.CategoryName FROM Customers c JOIN Orders d on (c.CustomerID = d.CustomerID) LEFT JOIN OrderDetails o on (o.OrderID = d.OrderID) LEFT JOIN Shippers s on (s.ShipperID = d.ShipperID) LEFT JOIN Products r on (r.ProductID = o.ProductID) LEFT JOIN Categories g on (g.CategoryID = r.CategoryID) LEFT JOIN Employees e on (e.EmployeeID = d.EmployeeID) WHERE s.ShipperName = 'Speedy Express' AND((e.LastName = 'Davolio' AND e.FirstName = 'Nancy') OR (e.lastName = 'Peacock' AND e.firstName = 'Margaret'));
die Fehler verschwindet. Also bitte wie kann ich den Year_month Zustand beheben, ohne Fehler zu bekommen!
Welche MySQL-Version verwenden Sie? –
Ich benutze SQL Editor auf w3schools.com –