Php mysql联接在另一个表中排除匹配的记录
我正在开发一个网络站点,在这里我必须向登录用户显示随机用户配置文件(不包括已连接的成员)以与之连接。我有一个members表,其中包含memberid、firstname和lastname等字段。我有另一个用于连接的表,其中包含memberid和friendid字段Php mysql联接在另一个表中排除匹配的记录,php,mysql,Php,Mysql,我正在开发一个网络站点,在这里我必须向登录用户显示随机用户配置文件(不包括已连接的成员)以与之连接。我有一个members表,其中包含memberid、firstname和lastname等字段。我有另一个用于连接的表,其中包含memberid和friendid字段 现在,当我在connections表上使用left join时,我只得到我不想要的连接成员的配置文件。我只想显示未与登录用户连接的配置文件表单成员表使用不在中,您可以在不加入的情况下实现这一点 select *from member
现在,当我在connections表上使用left join时,我只得到我不想要的连接成员的配置文件。我只想显示未与登录用户连接的配置文件表单成员表使用
不在
中,您可以在不加入的情况下实现这一点
select *from
members
where
members.memberid not in (select memberid
from connections
)
;
上面的查询只意味着显示不在连接中的MemberID的信息
编辑:
因为您已经使用了左join
。以下是使用左连接实现此任务的查询:
select m.*
from members m
left join connections c
on m.id = c.id
where c.id is null;
希望有帮助 使用不在
中,您可以在不加入的情况下实现这一点
select *from
members
where
members.memberid not in (select memberid
from connections
)
;
上面的查询只意味着显示不在连接中的MemberID的信息
编辑:
因为您已经使用了左join
。以下是使用左连接实现此任务的查询:
select m.*
from members m
left join connections c
on m.id = c.id
where c.id is null;
希望有帮助 除了条款中没有的选项,还有其他更快的选项吗?嗨!我正在为这个应用程序使用PHP和Mysql。在每个页面上执行的查询太多了。有没有什么机制可以让我提前执行查询,并在用户下次访问时为其准备好响应?我对PHP除了基础知识了解不多。通常,查询是在一些事件上执行的,比如按钮点击、页面加载等。所以我不认为您可以提前执行需要用户输入的查询。Bu如果您正在寻找更快的访问,那么您可以搜索如何在php中维护缓存和Cookie。除了in子句之外,还有其他更快的方法吗?嗨!我正在为这个应用程序使用PHP和Mysql。在每个页面上执行的查询太多了。有没有什么机制可以让我提前执行查询,并在用户下次访问时为其准备好响应?我对PHP除了基础知识了解不多。通常,查询是在一些事件上执行的,比如按钮点击、页面加载等。所以我不认为您可以提前执行需要用户输入的查询。如果您正在寻找更快的访问,那么您可以搜索如何在php中维护缓存和cookie。