我正在做一个自由职业者的支付控制软件,但我有几个关于mysql
的问题。 我有一个表,作为日志,称为“比塔科拉”。在表中,我有一个名为idCliente的列,它是一个人在它自己的表中的id,因为我有另一个名为“Cliente”的表,名为“idCliente”的列,所以当我执行select I期望显示客户的名字。Mysql Select Empty Cells not shown [WHERE part]
下面的例子显示了表“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)
我都试过了,但还是可以不会得到wh在我想要的时候,我认为它是因为WHERE部分。但仍然无法解决,几天后,我认为需要一些帮助。
谢谢!它真的起作用了! – Sparkle