假設我有這兩個表:對多行中的列值進行MySQL過濾?
|Customers | |Purchases |
---------------- -----------------
|CusID |----- |PurchaseID |
|CusName | |---<|CusID |
|CusAge | |ItemName |
|CusDateAdded | |DatePurchased |
我需要篩選我的結果由多個itemNames的設置。假設我想退回所有年齡在18歲至24歲之間購買「相機」和「電話」的所有客戶。當談到時間,在採購表中是如何做的多行一個過濾器ITEMNAME列過濾然而
SELECT CusID
FROM Customers AS C
JOIN Purchases AS P
ON C.CusID = P.CusID
WHERE C.CusAge BETWEEN 18 AND 24
:我可以運行下面的查詢來獲取所有記錄年齡範圍之間的客戶?假設沒有多個查詢是可能的?
我可能會看這個錯誤,請糾正我,如果我是,但如果客戶有更多的購買不僅僅是「相機」和'電話'。假設他們還購買了一個'襯衫'和'帽子',這將使他們在採購表中的總記錄數等於4.因爲我只關心'照相機'和'手機',所以當我運行HAVING count(distinct ItemName)= 2 ,這是否會忽視購買了相機和手機以及其他物品的顧客? – commanderZiltoid 2014-09-19 14:16:54
但是在你的where子句中,你只能看到AND ItemName IN('camera','phone')'。所以沒關係,如果有其他人 – 2014-09-19 15:58:59
你肯定是正確的。奇蹟般有效! – commanderZiltoid 2014-09-19 17:51:14