MySQL选择与特定记录无关的记录

问题描述:

好的,很抱歉,如果这是一个转发,我真的不知道如何说出我正在寻找的内容来真正搜索它。MySQL选择与特定记录无关的记录

我有3个表:

Amenities: 
AmenitiesID 
Name 

resort_amenities 
ResortAmenitiesID 
ResortID 
AmenityID 

resorts 
ResortID 
ResortName 
and so on... 

我上了的amenties链接到度假村的代码工作,并保存在resort_amenities。

我想要的是有一个jQuery模式对话框提供所有设施表中的设施,这些设施尚未与该度假村连接。

现在在我的ajax调用中,我传递了度假村ID,用于sql的某处。

我相信我需要一个工会,但从来没有建立过一个多年前的学校。

感谢

所以,你想,对于一个特定的度假胜地,集设施无法与度假相关:

SELECT DISTINCT * -- get all those Amenities 
FROM Amenities 
WHERE NOT EXISTS (-- that we can't find a counter-example for 
    SELECT AmenitiesID 
    From resort_amenities 
    WHERE ResortID = <the resort id> 
    AND Amenities.AmenitiesID = resort_amenities.AmenitiesID 
) 

这是一套减法的S = S1 - S2,其中S1是集所有设施和S2是已经链接到度假村的设施。

+0

完蛋了......非常感谢您的帮助! – guyfromfl

如果我理解你需要什么,你可以尝试:

SELECT * FROM Amenities a 
INNER JOIN resort_amenities ra 
    ON a.AmenitiesID = ra.AmenityID 
WHERE ra.ResortID <> your_resort_id 

SELECT * FROM Amenities a 
LEFT JOIN resort_amenities ra 
    ON a.AmenitiesID = ra.AmenityID 
WHERE ra.ResortID IS NULL 
    OR ra.ResortID <> your_resort_id 
+0

这很接近,但只返回没有your_resort_id的ResortID的resort_amenities中的数据。我想要做的是从resort_amenities中尚未包含的设施中选择所有设施,并且具有your_resort_id的resort_amenities.ResortID。我希望有所帮助。 – guyfromfl

+0

@guyfromfl:尝试我编辑的答案... – Marco

+0

即将结束,但它正在吐出所有的数据,而不是只是设施数据。谢谢您的帮助! – guyfromfl