Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como verificar em outra tabela não possui dados ao fazer o mysql join?


Adicione a condição IF na consulta SQL, algo assim.
SELECT invoice_details.invoice_no,
       invoice_details.invoice_date,
       invoice_details.invoice_amount,
       SUM(IF(received_amount_details.received_amount IS NULL
               OR received_amount_details.received_amount = '', 0.0,
               received_amount_details.received_amount)) AS totalreceiptamt
FROM   (SELECT DISTINCT invoice_no,
                        received_amount
        FROM   received_amount_details) AS received_amount_details
       right join invoice_details
               ON received_amount_details.invoice_no =
                  invoice_details.invoice_no
WHERE  invoice_details.proje_id = '7'
GROUP  BY invoice_details.invoice_no 

Isso adicionará 0,0, pois o valor padrão não é receive_amount_details.received_amount IS NULL ou em branco

Também estamos fazendo a junção correta para obter todos os valores da página de detalhes da fatura.

Você pode aprender mais sobre a condição IF no MYSQL aqui,

https://www.w3schools.com/mysql/func_mysql_if.asp https://dev.mysql.com/doc/refman/8.0 /en/if.html