gpt4 book ai didi

Mysql 选择空单元格不显示 [WHERE 部分]

转载 作者:行者123 更新时间:2023-11-29 10:44:19 32 4
gpt4 key购买 nike

我正在以自由职业者的身份开发支付控制软件,但我有一些关于 mysql 的问题。 。我有一个用作日志的表,名为“Bitacora”。在表中,我有一个名为 idCliente 的列,它是自己表中一个人的 id,因为我有另一个名为“Cliente”的表,其中有一列名为“idCliente ”,因此当我进行选择时,我希望显示客户的名称。

下面的示例显示了表“Bitacora”如何处理 3 行。

idBitacora, tipoBitacora, **idCliente**, idPago, idPagoVario, fecha, razon

'1', '1', **'6',** '-1', '-1', '2017-05-06 21:52:53', ''

'2', '1', **'7',** '-1', '-1', '2017-05-06 21:53:01', ''

'3', '1', **'-1',** '-1', '-1', '2017-05-06 22:19:33', ''

所以我做了一个选择查询

> SELECT **IF(bitacora.tipoBitacora = 1, 'Cliente Agregado',
> IF(bitacora.tipoBitacora = 2, 'Cliente Borrado',
> IF(bitacora.tipoBitacora = 3, 'Cliente Editado',
> IF(bitacora.tipoBitacora = 4, 'Pago Mensual', IF(bitacora.tipoBitacora
> = 5, 'Pago Vario', IF(bitacora.tipoBitacora = 6, 'Intento Clave Fallida', 'Desconocido')))))) AS Suceso** , IF(bitacora.idCliente =
> -1, '', cliente.idCliente) as idCliente FROM bitacora, cliente where cliente.idCliente=bitacora.idCliente ;

上面的粗体是一个条件,可以知道它是什么类型的日志。

> SELECT IF(bitacora.tipoBitacora = 1, 'Cliente Agregado',
> IF(bitacora.tipoBitacora = 2, 'Cliente Borrado',
> IF(bitacora.tipoBitacora = 3, 'Cliente Editado',
> IF(bitacora.tipoBitacora = 4, 'Pago Mensual', IF(bitacora.tipoBitacora
> = 5, 'Pago Vario', IF(bitacora.tipoBitacora = 6, 'Intento Clave Fallida', 'Desconocido')))))) AS Suceso , **IF(bitacora.idCliente =
> -1, '', cliente.idCliente) as idCliente** FROM bitacora, cliente where cliente.idCliente=bitacora.idCliente ;

上面的粗体是我所做的一个条件,以确保如果 cliente.idCliente 中没有客户端,该行仍然可以显示,但在我的结果中,带有 bitacora.idCliente 的行不会出现在 Cliente 中(- 1) 没有显示,因此以显示的第一个表的示例为例,查询仅返回

> Cliente Agregado |Mark
> Cliente Agregado |Zack

但我想得到

> Cliente Agregado |Mark
>
> Cliente Agregado |Zack
>
> Cliente Agregado |(nothing)

我已经尝试过,但仍然无法得到我想要的,我认为这是因为 WHERE 部分。但仍然无法弄清楚,几天后,我认为需要一些帮助。

最佳答案

SELECT IF(bitacora.tipoBitacora = 1, 'Cliente Agregado', IF(bitacora.tipoBitacora = 2, 'Cliente Borrado', IF(bitacora.tipoBitacora = 3, 'Cliente Editado', IF(bitacora.tipoBitacora = 4, 'Pago Mensual', IF(bitacora.tipoBitacora = 5, 'Pago Vario', IF(bitacora.tipoBitacora = 6, 'Intento Clave Fallida', 'Desconocido')))))) AS Suceso , IF(bitacora.idCliente = -1, '', cliente.idCliente) as idCliente 
FROM bitacora
LEFT JOIN cliente ON cliente.idCliente=bitacora.idCliente;

您应该像上面一样使用,因为如果我们用逗号分隔连接表,那么将应用 INNER JOIN。按照上面的方法试试吧!希望这会对您有所帮助。

为了更好地理解,请访问此链接 - SQL left join vs multiple tables on FROM line?

关于Mysql 选择空单元格不显示 [WHERE 部分],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44897250/

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