在MySQL中我有两个表,比如Customers
和Orders
,如下所示:
[Customers]
'ID' 'Name' 'Phone_nr'
1 Ted 12345
2 Anna 54321
3 Anna 98765
[Orders]
'ID' 'Customer_ID' 'Price'
1 2 100
2 2 50
3 1 70
4 2 120
5 3 80
现在我想搜索订单ID,其中'Customers.Name = Anna'和Price> 60 ...我希望我做的事情如下:
SELECT 'ID' FROM 'Orders' WHERE 'Customer_ID' = (SELECT 'ID' FROM 'Customers' WHERE 'Name' = 'Anna') AND 'Price' > 60
我希望这会返回订单ID 1,4和5。
所以基本上,根据其他表中搜索找到的ID号进行搜索......
这可能会在大型表上完成,对于“Anna”可能有1k的结果,我也会对其他结构化表的方式开放,特别是如果它需要较少的服务器,但我仍然在一个表中有项目链接到另一个表中的项目,我需要过滤它们。
希望我能清楚这一点,谢谢你的时间。
答案 0 :(得分:3)
SELECT Orders.Id
FROM Orders
INNER JOIN Customers ON Customers.Id = Orders.Customer_ID
WHERE Customers.'Name' = 'Anna' AND Orders.'Price' > 60
答案 1 :(得分:1)
SELECT o.id
FROM orders o, customers c
WHERE o.Customer_ID = c.ID AND
o.Price > 60 AND
c.Name = 'Anna';
答案 2 :(得分:0)
SELECT ID FROM Orders o
JOIN Customers c ON c.ID = o.Customer_ID
WHERE c.Name = 'Anna' AND Price > 60
附注:我不建议对数据库表和列名使用大写字符。