【发布时间】:2013-07-04 02:28:57
【问题描述】:
编辑:这两个表之间的关键是客人的 id #。
我想同时运行 2 个来自 2 个不同表的查询:
我想创建一个列表,主持人可以查看他们曾经邀请过的每个人。我想显示guestinvited 的用户名+位置
$table = query("SELECT guest FROM parties WHERE host = $uid");
$table2 = query("SELECT id, username, location FROM users WHERE id = $uid");
$uid 是当前用户查看他们邀请的客人的历史记录。
聚会表
事件 |来宾 |主机
圣诞节 | 12 | 14
用户表
标识 |用户名 |位置
12 |卡罗琳 |纽约市
我该怎么做?
【问题讨论】:
-
请仔细检查您的表名和列名。是派对桌吗?还是会员?
$uid是数字 (12) 还是名称 ('marc')?您是否在第一个查询中混淆了 guest 和 host 列? -
sql join two table的可能重复
-
@jcsanyi $uid 是一个数字 (12)。我刚刚编辑了表的名称。谢谢
-
您应该重新考虑一下您的数据结构。在我看来,实现所要求的唯一方法是将 user.username 加入到party.host 中(如@Daniel 的回答)以这种方式将人名视为键是一种非常糟糕的做法。如果两个人同名怎么办?他们会看到对方的数据!如果有人想在系统中更改他们的名字怎么办?他们将丢失所有旧数据。请考虑为密钥设置一个唯一编号。
-
关键是一个唯一的 id:见上文,我编辑了我的问题。 id 12 是两个表之间的链接。