データベースはhttp://www.w3schools.com/sql/trysql.asp?filename=trysql_select_allにあります。私は、Speedy Express Shipping Companyから1996年7月に製品受注した顧客のリストを取得したいと思っており、従業員によって提供されました:Davolio NancyとPeacock Margaret。結果は、持っている必要があります:顧客、連絡先、住所、都市、郵便番号および国 w3schoolデータベースを照会したい
- 名orderDetailID彼らは運送会社の
- コンタクト
- 商品名、価格と数量を置い
- 商品名、価格および単位は製品の
- カテゴリーを買っ
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;
:10ここに
は私のクエリです
ERROR 1: Could not prepare statement (1 near "FROM": syntax error)
次のように私は(日付を抽出するの)最後の条件を削除する場合:
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'));
エラーが消えます。ですから、どうすればエラーが発生することなくyear_monthの条件を修正できますか?
使用しているMySQLのバージョンは何ですか? –
私はw3schools.comでSQLエディタを使用しています –