简体   繁体   English

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

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

I have three tables for streaming data from database我有三个表用于从数据库流式传输数据

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

I can join together to get data stream, but I want to get "stream_likes" data for each "stream_master" rows, based on user(Logged in) activity.我可以一起获取数据 stream,但我想根据用户(登录)活动为每个“stream_master”行获取“stream_likes”数据。 Mean if user already like stream get 1 for each row意味着如果用户已经喜欢 stream 每行获得 1

Is this possible to execute in single query?这可以在单个查询中执行吗?

my output should be:我的 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]

I am not able to find a nice solution for this.我无法为此找到一个很好的解决方案。 Could someone can help me on this?有人可以帮助我吗?

Thanks谢谢

Peter彼得

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

Would that work for you?这对你有用吗?

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

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