2013-01-31 35 views
0

我有2個表格,用戶和最喜歡的歌曲。PHP:如何從2個表中檢索數據?我必須使用連接嗎?

用戶註冊到該網站,並且必須登錄。所以對此的查詢是:

SELECT * FROM users WHERE Username='$Name' AND Password='$Pass' 

最喜歡的歌曲表也有他們的用戶名。如何更改查詢以便他們最喜歡的歌曲也被選中?登錄後,我希望這首歌能夠回饋給他們。

宋表:

Username Song: 
test1 | Singing in the rain 
test2 | Nightdance 
test3 | Firestorm 

用戶表:

Username Password 
test1 | 123123 
test2 | 123123 
test3 | 123123 
+0

不要忘記,以防止SQL注射。 – kapa

+0

這是使用用戶名作爲用戶標識符的錯誤設計。您應該有一個名爲user_id的額外列,並使用它來引用所有表中的用戶。你目前的設計違背了「良好的做法」,在一個數據庫中,一個信息應該只存儲一次(在這種情況下,用戶名)。關於你的問題,我相信你會在接下來的5分鐘內得到答案;) – Bgi

回答

1
SELECT u.Username, COALESCE(s.Song, 'Oh, you have no favorite song ?') 
FROM users u 
LEFT JOIN song s 
    ON s.UserName = u.UserName 
WHERE Username='$Name' AND Password='$Pass' 
1

假設我最喜愛的歌曲表被命名爲favorite_songs_table

SELECT u.*, f.song FROM users u 
INNER JOIN favorite_songs_table f ON f.user_name = u.name 
WHERE Username='$Name' AND Password='$Pass' 
相關問題