2016-08-02 6 views
0

Meine Suche istNull-Werte in My SQL-Abfrage

SELECT i.status,i.amount_total, i.id,sc.category as category,us.fname as name,us.company as company, 
(SELECT transaction_id FROM invoice_payments WHERE invoice_payments.invoice_id = i.id) as transaction_id , 
(SELECT created FROM invoice_payments WHERE invoice_payments.invoice_id = i.id and invoice_payments.created BETWEEN '2015-01-01' and '2016-01-01') as created 
FROM invoices i 
inner JOIN 
users as us ON us.id = i.client_id 
inner JOIN subscriptioncategory as sc ON sc.user_id = us.id 

und mein Ergebnis ist

enter image description here

in der Spalte Erstellt, ich sollte nicht die Null-Werte erhalten. Gibt es eine einfache Abfrage, um es zu beheben?

+0

einfach erstellt add IS NOT NULL in dem Statement – Luke

+0

nicht funktionieren, Mehrdeutigkeitsfehler – SSJGSS

+0

wirft Deshalb sollten Sie in der subselect invoice_payments.created verwenden müssen, nicht nur erstellt in Hauptauswahl ... – Luke

Antwort

1

kommen einfach alle Tabellen mit inner join:

SELECT i.status,i.amount_total, i.id,sc.category as category,us.fname as name,us.company as company, 
ip.transaction_id, 
ip1.created 
FROM invoices i 
inner JOIN 
users as us ON us.id = i.client_id 
inner JOIN subscriptioncategory as sc ON sc.user_id = us.id 
join invoice_payments ip on ip.invoice_id = i.id 
join invoice_payments ip1 WHERE ip1.invoice_id = i.id and ip1.created BETWEEN '2015-01-01' and '2016-01-01' 
+0

Danke @Jens. Es funktionierte. – SSJGSS

+0

@SSJGSS Sie sind willkommen – Jens