0

iOS/Android アプリに同様の機能を統合したい。そのためのサービスを開発しています。私の質問は: 私は曲の詳細を持っている曲と呼ばれるテーブルを持っています

**like**

song
song_id
station_id
song_file

すぐ。ユーザーのような情報が格納される userlike という 2 番目のテーブルがあります。

**userlike**
user_id
song_id
like

私の主な問題は、すべての曲の詳細を特定のユーザーの値情報と同じように返したいことです。ユーザーが気に入らない場合は、JSON で「ゼロ」または null を送信できます。このクエリを作成する方法は? ユーザーが気に入った場合は、曲のデータといいねの値が必要です。

4

4 に答える 4

0

これを試して

select s.song, s.song_id from song s , userlike u where u.user_id = your userId;
于 2013-04-01T12:16:07.367 に答える
0
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は機能するはずです。修正するテーブル名と列名を探してください。

ありがとう

于 2013-04-01T12:24:00.083 に答える
0

仮定userlike.likeboolean値です

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*/
于 2013-04-01T12:20:20.727 に答える
0

を使用する必要があるように聞こえますOUTER JOIN

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

Join に userId を入れると、ユーザーが曲を気に入らなかったとしても、その曲が確実に返されます。

于 2013-04-01T12:20:40.863 に答える