2011-10-31 97 views
1

好的,很抱歉,如果這是一個轉發,我真的不知道如何說出我正在尋找的內容來真正搜索它。MySQL選擇與特定記錄無關的記錄

我有3個表:

Amenities: 
AmenitiesID 
Name 

resort_amenities 
ResortAmenitiesID 
ResortID 
AmenityID 

resorts 
ResortID 
ResortName 
and so on... 

我上了的amenties鏈接到度假村的代碼工作,並保存在resort_amenities。

我想要的是有一個jQuery模式對話框提供所有設施表中的設施,這些設施尚未與該度假村連接。

現在在我的ajax調用中,我傳遞了度假村ID,用於sql的某處。

我相信我需要一個工會,但從來沒有建立過一個多年前的學校。

感謝

回答

2

所以,你想,對於一個特定的度假勝地,集設施無法與度假相關:

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

0

如果我理解你需要什麼,你可以嘗試:

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