我正在做一個自由職業者的支付控制軟件,但我有幾個關於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