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
我在 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