我有两个表,一个包含用户数据,user另一个包含那些用Twitter绑定帐户的用户,user_twitter.由于第二个表不包含每个用户的对应值(例如那些尚未将其帐户与Twitter连接的用户),我使用LEFT JOIN进行查询:
SELECT DISTINCT `user_twitter`.uid AS `connected`
FROM `user`
LEFT JOIN (SELECT uid FROM `user_twitter`) AS `user_twitter` ON `user`.uid = `user_twitter`.uid
Run Code Online (Sandbox Code Playgroud)
我想做的是返回一个布尔值(如果user_twitter.uid是非空值,则为true,如果为空,则为false).有什么指针吗?
SELECT a.uid AS `connected`,
(b.uid IS NOT NULL) bool_val
FROM `user` a
LEFT JOIN `user_twitter` b
ON a.uid = b.uid
Run Code Online (Sandbox Code Playgroud)
将返回0false和1true.但是,如果你想要true或的字符串值false,
SELECT a.uid AS `connected`,
CASE WHEN b.uid IS NOT NULL THEN 'True' ELSE 'False' END bool_val
FROM `user` a
LEFT JOIN `user_twitter` b
ON a.uid = b.uid
Run Code Online (Sandbox Code Playgroud)