2011-02-04 150 views
0

我有兩個表sql查詢依賴列

一個是關鍵字[id |關鍵字|賬戶] k ,一個是templateKeywordLink [templateId | keywordId]漳州燦坤

我想要做的就是從關鍵字表(其中帳戶= 1)

我還想添加一個名爲選擇另一列所有關鍵字的結果集。

if k.id in (select templateId from templateKeywordLink) then then selected should contain「selected」。否則它應該爲空

我想知道最佳查詢是做什麼的?

回答

0

有幾種方法可以做到這一點。一種方法是針對返回感興趣ID的查詢執行左連接。

請注意,大多數數據庫有更緊湊的方式來做我對CASE語句所做的事情,但CASE可移植到您可能想要使用的任何關係數據庫。

SELECT k.* 
    , CASE 
     WHEN tkl.id IS NULL 
     THEN NULL 
     ELSE 'selected' 
    END as selected 
FROM keywords k 
    LEFT JOIN (
     SELECT DISTINCT templateId 
     FROM templateKeywordLink 
    ) as tkl 
    ON k.id = tkl.templateId