Es gibt zwei Tabellen in einer Datenbank sagen Tabelle1 und Tabelle2 .. tabelle1 hat Spalten ip_address und application_name während table2 Spalten hat, ip_adresse, avg_cpu, ram_utilization, DatumVerwirrung in Nullwerte Abrufen Joins
Ich möchte alle abrufen die ip_address, avg_cpu (durchschnittliche CPU-Auslastung) für das Datum 2012-03-01 die Host-Anwendung 'my_system' ... wenn eine bestimmte IP-Adresse keinen avg_cpu-Wert hat ... sollte null für diese IP-Adresse zurückgegeben werden .. welche Änderungen sollte ich tun, um die folgende Abfrage zu erhalten Ergebnis ... bin verwirrt, da dies das erste Mal, dass ich neu bin verbindet
SELECT
`table1`.`ip_address`,
`table1`.`application`,
`table2`.`avg_cpu`
from
`table1`
right outer join `table2` ON `table1`.`ip_address`=`table2`.`ip_address`
where
`table2`.`date`='2012-03-01'
and `table1`.`application`='My_System'
auf Links außen versucht, einen der ip_adresse beitreten, die nicht angezeigt nicht avg_cpu utilzation Wert in table2 haben war ... ist, dass ip_adresse in table1 und nicht in table2 – Pramod
Wie HLGEM unten erwähnt, liegt das Problem in Ihre Wo-Klausel. Die linke Verknüpfung enthält eine Zeile für die IP-Adresse, die in Tabelle 2 fehlt, wird dann aber von Ihrer WHERE-Klausel herausgefiltert, da das Datum null ist und daher nicht mit '2012-03-01' übereinstimmt. Probieren Sie die Klausel "(' table2'.date' = '2012-03-01' ODER 'table2'.date' ist NULL) und ..." um zu sehen, was ich meine. – RyanHennig