-- 1. 全表扫描 --
-- mysql --
SELECT p.*
FROM products as p;
-- neo4j --
MATCH (p:Product)
RETURN p;
-- 2. 查询价格最贵的10个商品,只返回商品名字和单价 --
-- mysql --
SELECT p.ProductName, p.UnitPrice
FROM products as p
ORDER BY p.UnitPrice DESC
LIMIT 10;
-- neo4j --
MATCH (p:Product)
RETURN p.productName, p.unitPrice
ORDER BY p.unitPrice DESC
LIMIT 10;
-- 3. 按照商品名字筛选 --
-- mysql --
SELECT p.ProductName, p.UnitPrice
FROM products AS p
WHERE p.ProductName = 'Chocolade';
-- neo4j --
MATCH (p:Product)
WHERE p.productName = "Chocolade"
RETURN p.productName, p.unitPrice;
-- 其他的写法 --
MATCH (p:Product {productName:"Chocolade"})
RETURN p.productName, p.unitPrice;
-- 4. 按照商品名字筛选2 --
-- mysql --
SELECT p.ProductName, p.UnitPrice
FROM products as p
WHERE p.ProductName IN ('Chocolade','Chai');
-- neo4j --
MATCH (p:Product)
WHERE p.productName IN ['Chocolade','Chai']
RETURN p.productName, p.unitPrice;
-- 5. 模糊查询和数值过滤 --
-- mysql --
SELECT p.ProductName, p.UnitPrice
FROM products AS p
WHERE p.ProductName LIKE 'C%' AND p.UnitPrice 100;
-- neo4j --
MATCH (p:Product)
WHERE p.productName STARTS WITH "C" AND p.unitPrice 100
RETURN p.productName, p.unitPrice;
-- 6. 多表联合查询--
-- mysql --
SELECT DISTINCT c.CompanyName
FROM customers AS c
JOIN orders AS o ON (c.CustomerID = o.CustomerID)
JOIN order_details AS od ON (o.OrderID = od.OrderID)
JOIN products AS p ON (od.ProductID = p.ProductID)
WHERE p.ProductName = 'Chocolade';
-- neo4j --
MATCH (p:Product {productName:"Chocolade"})
RETURN distinct c.companyName;
-- 7. 分组查询 --
-- mysql --
SELECT e.EmployeeID, count(*) AS Count
FROM Employee AS e
JOIN Order AS o ON (o.EmployeeID = e.EmployeeID)
GROUP BY e.EmployeeID
ORDER BY Count DESC LIMIT 10;
-- neo4j --
MATCH (:Order)
RETURN e.name, count(*) AS cnt
ORDER BY cnt DESC LIMIT 10