我有两张桌子
一个是关键字id | keyword | account k,一个是templateKeywordLink templateId | keywordId tkl
我想要做的是从关键字表中获得一个包含所有关键字的结果集(其中account = 1)
我还想添加另一个名为selected的列。
如果选择,则selected应包含“k.id in (select templateId from templateKeywordLink)”。否则,它应该为空
我想知道做这件事的最佳查询是什么?
发布于 2011-02-04 10:07:21
有几种方法可以做到这一点。一种方法是对返回感兴趣的is的查询执行左连接。
请注意,大多数数据库都有更简洁的方法来完成我对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.templateIdhttps://stackoverflow.com/questions/4893837
复制相似问题