php - 如何选择查询的逆

标签 php mysql

您好,我有三张表,一张用于用户,一张用于用户服务,一张用于服务

the Users table is (id, username, email, password)

The Services Table is (id, Servicename, Servicesdetails, price)

The userservices Table is (id, userid, serviceid, startdate, enddate)

当用户登录到他的仪表板时,他可以看到他拥有的所有服务。 和他没有的服务。 对于他提供的所有服务,我都使用了这个查询并且运行良好。

$mysql_servicesadded = "SELECT * FROM services INNER JOIN userservices ON userservices.serviceid = services.id WHERE userservices.userid = '".$user."' ORDER BY userservices.startdate DESC";
$query_servicesadded = $dblink->query($m$mysql_servicesadded) or die ("Cannot Get Services");

然后获取它并回显它 但是要获得用户没有的所有服务,我不知道要使用什么查询。 请任何帮助

最佳答案

使用外连接,它会选择你所有的服务

SELECT * 
FROM services 
LEFT OUTER JOIN userservices ON userservices.serviceid = services.id 
WHERE userservices.userid = '".$user."' 
ORDER BY userservices.startdate DESC";

如果您有来自 userservices 表的列的数据,则它与用户相关联。如果不这样做,则表示未连接。

然后您可以从 PHP 遍历并检查它们。

关于php - 如何选择查询的逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506960/

相关文章:

php - 在 mySQL 中插入带有特殊字符的 JSON 编码值失败

java - 从 user_master 中选择不同的 u.id, u.first_name + ' ' + u.last_name , u.company_name u 给出错误的结果

mysql - 编写查询来显示参加指定事件的人员列表的最佳方法是什么?

php - Laravel orderBy 出现列值错误

php - 我想按 1 2 3 4 1 2 3 4 的顺序对我的 CatId 进行排序,但有一个问题,如果 catid 相同,它首先检查 allocationId 最后 14 位数字

javascript - 如何在jquery中通过图像上传发送文本输入值

php - 如何缓存mysql存储的函数

php - 如何使用 php mysql 查询填充 1 或 0 的状态表?

php - 加载动态 php 和 mysql 页面而不刷新 - AJAX

php - setInterval函数问题