MySQL single row with multiple records
I have a table with contains multiple rows that define "amenities" for a particular resort. I need to return the resortID if there are rows containing whatever "amenOptionID" I define. My issue comes in where I'm lookin开发者_运维知识库g to see if a resort has two or more amenities. For example:
I want to return resortIDs that have BOTH amenOptionID 1 AND 4. I also do not want duplicate resortIDs. Refer to the image for the table structure. Thanks in advance for any help.
SELECT `resortID`
WHERE `amenOptionID`
IN (1, 4)
GROUP BY `resortID`
HAVING COUNT(*) = 2
I think this will work...
SELECT resortID, COUNT(*) AS theCount FROM myTable WHERE amenOptionID IN(1,4) GROUP BY resortId HAVING theCount=2;
精彩评论