2010-09-10 95 views
0

首先,我不確定這是否應該在Coldfusion或MySQL中完成。如何比較兩個查詢的結果,並找出兩者之間的匹配?

我有一個項目查詢檢索目錄中的項目。我有第二個查詢從用戶列表中檢索項目。我的目標是在輸出第一個查詢(項目目錄)時查明某個項目是否已經存在於用戶列表中。

items(itemId, itemName) 

users_items(itemId,memberId) 
+0

您的預期產出是多少?因爲某人可以(並且將)訂購多件同一件物品 - 當您加入「ITEMS」表時,這會產生重複。 – 2010-09-10 02:18:16

+0

不,我的意圖是顯示一個添加到列表或從列表中刪除按鈕...所以我明確不希望一個人多次添加相同的項目。 – Mohamad 2010-09-10 02:27:59

回答

4

項目是否可以屬於多個目錄?如果是這樣,你不能根據USERS_ITEMS表判斷哪個目錄正確呈現列表。

否則,我認爲你可以使用一個LEFT JOIN做:

SELECT i.itemid, 
      i.itemname, 
      ui.memberid 
    FROM ITEMS i 
LEFT JOIN USERS_ITEMS ui ON ui.itemid = i.itemid 
         AND ui.memberid = ? 

... which'll返回像一個結果(我省略了itemname):

itemid memberid 
-------------------- 
1  1234 
2  NULL 
3  1234 

如果您看到NULL,告訴你該成員沒有訂購該物品。

在Coldfusion中,您只需設置頁面以根據值或NULL的存在情況適當地處理添加或刪除選項。

  • 只允許有人來 「添加到列表」 時memberid(IE:第2項)
  • 如果memberid不爲空(IE項目1 & 3)--provide 「從列表中刪除」選項。
+0

對不起,我發現這有點難以遵循...一個項目可以屬於多個用戶,並且一個用戶可以有很多項目...我的表格是用戶(用戶標識符),項目(itemid),users_items (userid,itemid)...我會試着去檢查你給我的東西,但是我必須說我正在努力一點... – Mohamad 2010-09-10 02:45:50

+1

@Mel:我更新了一個結果集,並且刷新了算法再來一點。我不知道Coldfusion,或者我會提供一個片段。 – 2010-09-10 02:50:56

+0

真棒!我剛剛測試過它,它的工作原理! – Mohamad 2010-09-10 02:52:58

相關問題