Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Php mysql联接在另一个表中排除匹配的记录_Php_Mysql - Fatal编程技术网

Php mysql联接在另一个表中排除匹配的记录

Php mysql联接在另一个表中排除匹配的记录,php,mysql,Php,Mysql,我正在开发一个网络站点,在这里我必须向登录用户显示随机用户配置文件(不包括已连接的成员)以与之连接。我有一个members表,其中包含memberid、firstname和lastname等字段。我有另一个用于连接的表,其中包含memberid和friendid字段 现在,当我在connections表上使用left join时,我只得到我不想要的连接成员的配置文件。我只想显示未与登录用户连接的配置文件表单成员表使用不在中,您可以在不加入的情况下实现这一点 select *from member

我正在开发一个网络站点,在这里我必须向登录用户显示随机用户配置文件(不包括已连接的成员)以与之连接。我有一个members表,其中包含memberid、firstname和lastname等字段。我有另一个用于连接的表,其中包含memberid和friendid字段


现在,当我在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。