繁体   English   中英

如何在单个查询中从多个表中查询数据,包括基于用户登录的“喜欢”数据

[英]How can I query data from multi tables in a single query, including “like” data based on user login

我有三个表用于从数据库流式传输数据

stream_master
    stream_id
    user_id -> foreign Key
    stream_title
    stream_content

user
    user_id
    user_name
    password


stream_likes
    stream_like_id
    stream_id
    user_id

我可以一起获取数据 stream,但我想根据用户(登录)活动为每个“stream_master”行获取“stream_likes”数据。 意味着如果用户已经喜欢 stream 每行获得 1

这可以在单个查询中执行吗?

我的 output 应该是:

[stream_id => 10,
user_id => 10015,
stream_title=>"title of stream",
stream_content="stream content",
stream_like=>1],
[stream_id => 10,
user_id => 10018,
stream_title=>"title of stream222",
stream_content="stream content22",
stream_like=>0]

我无法为此找到一个很好的解决方案。 有人可以帮助我吗?

谢谢

彼得

SELECT m.*, IF(l.stream_like_id IS NOT NULL, 1, 0) AS stream_like
FROM stream_master m
LEFT JOIN stream_likes l
ON m.stream_id = l.stream_id AND m.user_id = l.user_id

这对你有用吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM