Mysql 如果找不到数据则添加临时列

Mysql add temporary column if data not found

我在 mysql 数据库中有这两个表,如果没有数据,是否可以像这样查询 islike in [=42] =] 自动创建一个值为 false 的临时列。

好像like_tbl中没有post_id = 3的数据所以结果应该是我下面提到的这样。

post_tbl

post_id uid fname
1 1 abc
2 1 abc
3 1 abc

like_tbl

likeid uid postid islike
1 2 1 true
2 3 2 true

这是我正在寻找的结果:

post_id uid fname islike
1 2 abc false
2 2 abc true
3 2 abc false

总结 我正在尝试进行查询,该查询将 return 所有 post_id 并检查 like_tbl 特定用户是否喜欢 post。如果 like_tbl 中特定 post_id uid 的数据存在,它将 return islike 列值为 true 否则如果没有数据,它将 return false在那里找到特定 uid 的 post_id。

我试过了,但没有用,

select n.* , e.isLike 
from post_tbl n 
join like_tbl on e.post_id = n.post_id 
where n.uid = '2' 
order by post_id desc

mysql 数据库的新手任何帮助将不胜感激

您可以尝试使用 ifnull 和 left join

select n.* , ifnull(e.isLike , 'false')
from post_tbl n 
LEFT JOIN like_tbl e on e.postid = n.post_id 
    AND e.uid = n.uid

order by post_id DESC