Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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 如果键对存在于另一个表中,则选择列为true/false_Mysql_Sql_Mariadb - Fatal编程技术网

Mysql 如果键对存在于另一个表中,则选择列为true/false

Mysql 如果键对存在于另一个表中,则选择列为true/false,mysql,sql,mariadb,Mysql,Sql,Mariadb,我目前有这些表格。服务器:MariaDB (为了更简单,我删除了一些列) 我试图达到这个结果 使用个人id=1进行测试 snippet.id | snippet.title | is_favourite (check favourite table) -------------------------------------------------------- 1 | BestTitle | true 2

我目前有这些表格。服务器:MariaDB

(为了更简单,我删除了一些列)

我试图达到这个结果

使用个人id=1进行测试

snippet.id    |    snippet.title    |    is_favourite (check favourite table)
--------------------------------------------------------
1             |     BestTitle       |    true
2             |     Test2           |    false
3             |     Test3           |    false

使用个人id=2进行测试

snippet.id    |    snippet.title    |    is_favourite  (check favourite table)
--------------------------------------------------------
1             |     BestTitle       |    false
2             |     Test2           |    false
3             |     Test3           |    false

我试着用IN、join和嵌套查询来实现它。

这就是您想要的吗

select s.id, s.title,
       (exists (select 1
                from Favourite f
                where f.snippet_id = s.id and f.person_id = ?
               )
       ) as is_favourite
from snippet s;

是您感兴趣的个人id的占位符。

我不知道MariaDB,但是您不能在收藏夹表上使用外部联接并使用isnull函数来获得它吗
snippet.id    |    snippet.title    |    is_favourite (check favourite table)
--------------------------------------------------------
1             |     BestTitle       |    true
2             |     Test2           |    false
3             |     Test3           |    false

snippet.id    |    snippet.title    |    is_favourite  (check favourite table)
--------------------------------------------------------
1             |     BestTitle       |    false
2             |     Test2           |    false
3             |     Test3           |    false

select s.id, s.title,
       (exists (select 1
                from Favourite f
                where f.snippet_id = s.id and f.person_id = ?
               )
       ) as is_favourite
from snippet s;