Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 向查询结果添加有条件的额外字段_Mysql_Sql - Fatal编程技术网

Mysql 向查询结果添加有条件的额外字段

Mysql 向查询结果添加有条件的额外字段,mysql,sql,Mysql,Sql,我有这两张桌子 表1锦标赛数据 tournament_id | accound_id | data1 | data2 表2锦标赛的订阅 tournament_id | account_id 在这里,我必须像这样读取表1的数据 SELECT data1,data2 from tournaments_data WHERE 1 在每行结果中添加一个额外字段,如果特定帐户id已订阅特定锦标赛,则该字段必须为true;如果帐户id未订阅,则该字段必须为false。如果我们可以在第二个表中找到一行,其

我有这两张桌子

表1锦标赛数据

tournament_id | accound_id | data1 | data2
表2锦标赛的订阅

tournament_id | account_id
在这里,我必须像这样读取表1的数据

SELECT data1,data2 from tournaments_data WHERE 1
在每行结果中添加一个额外字段,如果特定帐户id已订阅特定锦标赛,则该字段必须为true;如果帐户id未订阅,则该字段必须为false。如果我们可以在第二个表中找到一行,其中accound_id与特定的锦标赛_id耦合,则帐户_id被订阅到锦标赛。 实例

tournament_id | account_id | data1 | data2
      1             1        data1a  data2a
      2             5        data1b  data2b

tournament_id | account_id
      1             1
预期结果

data1a data2a true
data1b data2b false
正在查询帐户\u id=1。
希望它足够清楚。

我假设两列都命名为account\u id,并且有输入错误

您可以使用左连接。例如:

select
  d.data1,
  d.data2,
  case when s.tournament_id is null then 'false' else 'true' end
from tournaments_data d
left join tournaments_subscriptions s
   on s.tournament_id = d.tournament_id
  and s.account_id = d.account_id
  and s.account_id = 1 -- specific account
结果:

data1   data2   case w...
------  ------  ---------
data1a  data2a  true
data1b  data2b  false

参见运行示例。

您可以使用左连接。SQL语句如下:

SELECT TD.*, CASE WHEN TS.tournament_id IS NULL THEN 'false' ELSE 'true' END AS flag
FROM tournaments_data AS TD
LEFT JOIN tournaments_subscriptions AS TS 
ON TS.tournament_id = TD.tournament_id AND TS.accound_id = TD.accound_id

DB FIDDLE链接:

等待。。。账户id与账户id相同,还是有打字错误?如果正确,请详细说明。对不起,这是一个打字错误,谢谢