gpt4 book ai didi

如果查询选项在其中一个表中有空记录,则 mysql 不显示结果

转载 作者:行者123 更新时间:2023-11-29 01:28:45 24 4
gpt4 key购买 nike

我有两个表存储我妻子应用程序的数据。

如果服务表中有记录,我从客户表中加载配置文件没有问题。

但是如果查询在服务表中没有记录的客户记录,mysql 代码将不起作用。

这是mysql代码:

SELECT *
FROM customer, services
WHERE customer.cust_id = services.customer_id
AND customer.slug LIKE 'john-doe'
AND services.deleted = '0'

它非常适合 john-doe 因为它显示了客户和服务表的所有记录但是如果我将 john-doe 更改为 jeff-chew 它会显示记录数 0。

我试图实现的是对我的个人资料 View 页面使用相同的查询代码。

如果该客户有服务记录,它会显示服务表中的所有记录,否则如果在服务表中没有找到服务记录,它应该只显示客户表中的配置文件数据。

这里是 sqlfiddle

最佳答案

你需要一个左外连接:

SELECT *
FROM customer c left outer join
services s
ON c.cust_id = s.customer_id and s.delete = '0'
WHERE c.slug LIKE 'john-doe';

一个简单的规则:永远不要在 from 子句中使用逗号。不需要它们。您应该始终使用显式 join 语法,无论如何它都更具表现力(例如,它处理外部连接)。

此外,我在查询中添加了表别名,这使得它更易于读写。

关于如果查询选项在其中一个表中有空记录,则 mysql 不显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25709528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com