2014-09-24 56 views
-1

誠然,我不是偉大的加入:/需要SQL查詢列出用戶當前和可能購買

我有3個表,我想他們連這樣的

Users.UserID - >網關.UserID,Gateway.ProgramID - > Programs.ProgramID

網關是用戶已經訂閱的所有程序的列表。當我輸出一個表時,用戶沒有訂閱的程序將有一個訂閱鏈接,他們訂閱的行將包含一個到程序的鏈接。

所以輸出,這點我可以處理(因爲當然,這是比較容易的部分)可能看起來像這樣的:

Alpha [Enter] 
Beta [Enter] 
Charlie [Subscribe] - This will insert the row into Gateway 
Delta [Enter] 
Foxtrot [Subscribe] 

我感謝所有幫助任何人提供。

回答

1
declare @userId int; 
set @userId = <your user ID>; 

SELECT 
    p.ProgramId, 
    (CASE WHEN g.ProgramID IS NULL THEN 0 ELSE 1 END) AS IsSubscribed 

FROM Programs p 
    LEFT OUTER JOIN Gateway g ON (g.ProgramID = p.ProgramID AND g.UserID = @userId) 
+0

現在試試這個,謝謝你添加了IsSubscribed bit,我覺得這樣太多了,因爲我沒有辦法做到這一點。 – 2014-09-24 01:36:50

+0

有一個輕微的語法錯誤,我不得不將它改爲CASE WHEN ... IS NULL,而不是CASE ... IF NULL。它現在看起來很棒,這是爲了快速的幫助。 – 2014-09-24 01:50:33

+0

我冒昧地改變你的問題的標題,使其更具體 – Zruty 2014-09-24 02:15:50