需要根据mysql中的条件连接表

需要根据mysql中的条件连接表,mysql,join,outer-join,Mysql,Join,Outer Join,我想在iOS/android应用程序中集成类似的功能。 我正在为此开发服务。 我的问题是: 我有一张名为“歌曲”的表格,其中有歌曲的详细信息 **like** song song_id station_id song_file 等等。 我有第二个名为userlike的表,其中存储了类似用户的信息 **userlike** user_id song_id like 我的主要问题是,我想返回特定用户的所有歌曲细节和类似值信息。如果uer不喜欢它,那么我可能会在JSON中发送“零”或null。

我想在iOS/android应用程序中集成类似的功能。 我正在为此开发服务。 我的问题是: 我有一张名为“歌曲”的表格,其中有歌曲的详细信息

**like**

song
song_id
station_id
song_file
等等。 我有第二个名为userlike的表,其中存储了类似用户的信息

**userlike**
user_id
song_id
like
我的主要问题是,我想返回特定用户的所有歌曲细节和类似值信息。如果uer不喜欢它,那么我可能会在JSON中发送“零”或null。 如何构建此查询? 如果用户喜欢,我需要歌曲数据和喜欢的值。

试试这个

select s.song, s.song_id from song s , userlike u where u.user_id = your userId;

假设
userlike.like
boolean

SELECT like.song, like.song_id,
 like.station_id,
 like.song_file,
IFNULL(userlike.like,0)
from like left join userlike on like.song_id=userlike.song_id
and userlike.user_id=/*your userid*/

听起来您需要使用
外部联接

SELECT s.song_id, s.song, u.like
FROM song s 
    LEFT JOIN userlike u 
        ON s.song_id = u.song_id 
            AND u.user_id = @userId
将userId放入加入将确保返回歌曲,即使用户不喜欢它

select songs.song_id as song_id , songs.station_id as station_id , songs.song_file as song_file , userlike.user_id as user_id ,  COALESCE(userlike.like, 0) as like 
            FROM songs LEFT JOIN userlike
            on songs.song_id = userlike.song_id
            and userlike.user_id = 'your particular user'
上面的sql应该可以工作。请查找要更正的表名和列名


谢谢

到目前为止你尝试了什么?@TheEwook读到:在
userlike
中的
like
列是什么?