繁体   English   中英

选择与查询返回的结果相反的结果

[英]Selecting the opposite to the results returned by query

我正在尝试简化我的代码。

我目前有两个查询:一个选择信息列表并使用选择框将其输出以添加到用户订阅中,然后第二个查询选择用户已订阅的项目,但是我试图将代码简化为一个查询。

目前,我可以获取代码以显示用户已使用复选框订阅的选项,但不是相反的方法,是否可以在WHERE子句中选择与结果相反的方法?

$selectionQuery = 'SELECT t1.subId, t1.subTitle FROM tbl_subs t1 LEFT JOIN tbl_list t2 ON t2.subId = t1.subId WHERE t2.userId = '.$id.' AND t1.subId = t2.subId'; 

您已经在LEFT JOIN部分加入了subId。 WHERE部分中删除AND t1.subId = t2.subId' ,因为它再次连接您的结果集并克服了左连接。

正确:

$selectionQuery = 'SELECT t1.subId, t1.subTitle FROM tbl_subs t1 LEFT JOIN tbl_list t2 ON t2.subId = t1.subId WHERE t2.userId = '.$id.'; 

此代码可能不是ansiSQL,但在MYSQL上可以完美运行。

$ selectionQuery ='从tbl_subs中选择t1.subId,t1.subTitle作为t1,但不存在(从tbl_list中选择1作为t2,其中t2.userId ='。$ id。'AND t1.subId = t2.subId)';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM