Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从两个表中检索数据?我必须使用join吗?_Mysql_Sql_Select_Join - Fatal编程技术网

Mysql 如何从两个表中检索数据?我必须使用join吗?

Mysql 如何从两个表中检索数据?我必须使用join吗?,mysql,sql,select,join,Mysql,Sql,Select,Join,我有两张桌子,用户和最喜欢的歌曲 用户注册到该站点,并且必须登录。因此对此的查询是: SELECT * FROM users WHERE Username='$Name' AND Password='$Pass' “喜爱的歌曲”表中也有其用户名。如何更改查询,以便也选择他们喜爱的歌曲?一旦登录,我希望这首歌能回响给他们 歌曲表: Username Song: test1 | Singing in the rain test2 | Nightdance test3 | Firest

我有两张桌子,用户和最喜欢的歌曲

用户注册到该站点,并且必须登录。因此对此的查询是:

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

我假设收藏夹歌曲表的名称为
favorite\u songs\u 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'

别忘了阻止SQL注入。使用用户名作为用户标识符是一个糟糕的设计。您应该有一个名为user_id的额外列,并使用该列引用所有表中的用户。您当前的设计违背了“良好实践”,即在数据库中,一个信息只能存储一次(在这种情况下,用户名)。关于你的问题,我相信你会在接下来的5分钟内得到答案;)
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'