我想知道某个id是否开启了某个功能。但函数在另一个表中。
表1:
userID Name
1 aaa
2 bbb
3 ccc
表2:
functionID useID
1 1
2 1
2 2
3 2
1 3
3 3
表3
userID Name function1Enabled function2Enabled function3Enabled
1 aaa True True False
2 bbb False True True
3 ccc True False True
2条答案
按热度按时间thigvfpy1#
你可以试着用
JOIN
带条件聚合函数查询1:
结果:
mf98qq942#
笔记:
聚合函数(如count)忽略空值。
ELSE NULL
实际上不需要;如果没有ELSE
在一个CASE
这可以缩短使用IF()
而不是CASE
,但case对其他rdbms更具可移植性。这个
LEFT JOIN
将确保您获得所有表1记录,即使它们没有Map到表2中的函数。不,没有特殊的语法来获取为每个函数id值动态创建的“functionEnabled”结果字段;如果您添加一个新的函数id,这种查询将需要修改。