我有两个表,一个叫'user',另一个叫'user_info'。
用户;
userid | username
------------------------------
1 | mary
2 | john
3 | liam
user_info;
userid | desc
----------------------------------------------------
1 | hello, my name is mary i am 26
2 | message me if you need any help
3 | please leave me alone
我想显示来自"user_info"表的腐蚀性描述,以及基于用户 ID 的"用户"表中的信息。这样它就会看起来像:
Name: John
UserID: 2
Description: message me if you need any help
这是我的代码;
//Query the database
$resultSet = $mysqli->query("SELECT * FROM user,user_info");
//Count the returned rows
if ($resultSet->num_rows != 0) {
//Turn the results into an ArrayAccess
while($rows = $resultSet->fetch_assoc())
{
$uid = $rows['UserID'];
$username = $rows['username'];
$desc = $rows['desc'];
echo "<p>Name: $username </p>
<p>User ID: $uid </p>
<p>Description: $desc </p>
<hr>";
}
目前,它返回尽可能多的不同组合;如下所示:
Name:Mary
UserID:1
Description:hello, my name is mary i am 26
--------------------------------------------
Name:John
UserID:1
Description:message me if you need any help
--------------------------------------------
Name:Liam
UserID:1
Description:please leave me alone
--------------------------------------------
Name:Mary
UserID:2
Description:hello, my name is mary i am 26
--------------------------------------------
Name:John
UserID:2
Description:message me if you need any help
--------------------------------------------
ETC...
如何使它仅根据userID(仅一次(返回正确的相应数据,以便显示所有用户及其正确的用户名,ID和描述?
我不知道如何解释这一点,如果有人希望我进一步详细说明,我没有问题再试一次,
更新您的请求
$resultSet = $mysqli->query("SELECT * FROM user
JOIN user_info ON user_info.userid = user.userid");
像这样进行内部联接查询:
Select userId, userName, desc from user inner join user_info on
user.userid = user_info.userid
这应该可以解决问题。
尝试修改查询,如下所示:
SELECT user.*,user_info.desc FROM user INNER JOIN user_info ON user.userid=user_info.userid;
您可以使用 join 方法根据它们的关系从不同的表中获取数据,根据您的问题查询是这样的,
select user.username as Name, user.userid as UserID, user_info.desc as Description from user inner join user_info on user.userid=user_info.userid;