2013-04-01 69 views
0

我想在iOS/android應用程序中整合像功能一樣。 我正在爲此開發服務。 我的問題是: 我有表名爲歌曲中,我有首歌細節需要根據mysql中的條件加入表格

**like** 

song 
song_id 
station_id 
song_file 

等。 我有第二個表,稱爲userlike,用戶喜歡信息存儲。

**userlike** 
user_id 
song_id 
like 

我的主要問題是,我想回到與特定user.If UER像價值信息的所有歌曲詳細信息還沒有喜歡它,然後我可以發送「零」或空在我的JSON。 如何構建此查詢? 如果用戶喜歡它,我需要歌曲數據和類似的值。

+1

你到目前爲止嘗試了什麼? – TheEwook

+0

@TheEwook閱讀此:[「你有什麼嘗試」疫情](http://meta.stackexchange.com/questions/172758/what-have-you-tried-epidemic) –

+0

什麼是' userlike'? – didierc

回答

0

試試這個

select s.song, s.song_id from song s , userlike u where u.user_id = your userId; 
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*/ 
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 

把用戶id的加入將保證即使用戶沒有,也會返回歌曲喜歡它。

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應該可以工作。請查找表名和列名進行更正。

謝謝