我有两张桌子
一个是关键字[id |关键字|帐户] k 一个是templateKeywordLink [templateId | keywordId] tkl
我想要做的是从关键字表格中获取所有关键字的结果集(其中account = 1)
我还想添加另一个名为selected的列。
如果k.id in (select templateId from templateKeywordLink)
选中后应该包含“已选中”。否则它应为null
我想知道最佳查询是做什么的?
答案 0 :(得分: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