在 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
现在我想搜索“Customers.Name = Anna”和价格 > 60 的订单 ID...我希望我可以这样做:
SELECT 'ID' FROM 'Orders' WHERE 'Customer_ID' = (SELECT 'ID' FROM 'Customers' WHERE 'Name' = 'Anna') AND 'Price' > 60
我希望它返回订单 ID 1、4 和 5。
所以基本上,根据在其他表中搜索找到的 ID 号进行搜索...
这可能会在大表上完成,“Anna”可能有 1k 个结果,我也愿意接受其他构建表的方法,特别是如果它需要较少的服务器,但我仍然有一个表中的项目链接到另一个表中的项目,我需要过滤两者。
希望我说清楚了,感谢您抽出时间。
最佳答案
SELECT Orders.Id
FROM Orders
INNER JOIN Customers ON Customers.Id = Orders.Customer_ID
WHERE Customers.'Name' = 'Anna' AND Orders.'Price' > 60
关于基于 MySQL 搜索的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5472860/