Php 如何连接来自2个不同表的2个查询
编辑:这两个表之间的键是来宾的id 我想同时从两个不同的表运行两个查询: 我想创建一个列表,主人可以勾选出来,看看他们邀请过的每个人。我想显示被邀请的Php 如何连接来自2个不同表的2个查询,php,mysql,Php,Mysql,编辑:这两个表之间的键是来宾的id 我想同时从两个不同的表运行两个查询: 我想创建一个列表,主人可以勾选出来,看看他们邀请过的每个人。我想显示被邀请的客人的用户名+位置 $table = query("SELECT guest FROM parties WHERE host = $uid"); $table2 = query("SELECT id, username, location FROM users WHERE id = $uid"); $uid是当前用户,正在签出其邀请的
客人的用户名+位置
$table = query("SELECT guest FROM parties WHERE host = $uid");
$table2 = query("SELECT id, username, location FROM users WHERE id = $uid");
$uid是当前用户,正在签出其邀请的来宾的历史记录
参与方表
活动|嘉宾|主持人
圣诞节| 12 | 14
用户表
id |用户名|位置
12 |卡罗琳|纽约
我应该怎么做呢?如果同时运行两个查询,这并不重要。
$query = query('SELECT `u`.`username`, `u`.`location` FROM `users` u JOIN `parties` p ON `p`.`guest` = `u`.`id` WHERE `p`.`host` = ' . $uid)
但如果你想在一个变量中得到结果,你可以使用它
$query = SELECT id, username, location FROM users
LEFT JOIN parties
ON users.host = parties.host
基本上,您所需要做的就是使用JOIN子句。我希望下面的代码能有所帮助:
$sql=(“选择用户
id
,用户
用户名
,用户
位置,各方
宾客使用(id)加入,id
='uid');
$query=mysql\u query($sql)或die('执行查询失败:'。mysql\u错误) 请仔细检查您的表名和列名。这是宴会桌吗?还是成员?
$uid
是数字(12)还是名称('marc')?您在第一次查询中是否混淆了来宾列和主机列?@jcsanyi$uid的可能重复项是一个数字(12)。我刚刚编辑了表的名称。你应该重新考虑一下你的数据结构。在我看来,实现我们的要求的唯一方法是将user.username加入parties.host(如@Daniel的答案所示),以这种方式将某人的姓名作为密钥是一种非常糟糕的做法。如果两个人同名怎么办?他们将看到彼此的数据!如果有人想在系统中更改自己的名字怎么办?他们将丢失所有的旧数据。为密钥考虑一个唯一的数字。密钥是唯一的ID:见上面,我编辑了我的问题。id 12是两个表之间的链接。我是否应该用parties替换所有的Ps,用users替换美国?你可以-这是你的选择,但这根本不重要。你能再次回顾我的问题吗?我编辑了它。两个表之间的唯一键是id(12)。