基于MySQL搜索的搜索

时间:2011-03-29 12:56:38

标签: mysql sql

在MySQL中我有两个表,比如CustomersOrders,如下所示:

[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的结果,我也会对其他结构化表的方式开放,特别是如果它需要较少的服务器,但我仍然在一个表中有项目链接到另一个表中的项目,我需要过滤它们。

希望我能清楚这一点,谢谢你的时间。

3 个答案:

答案 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

附注:我不建议对数据库表和列名使用大写字符。