Ich habe diese funktionierende Abfrage, die Daten so generiert, wie ich es möchte, aber jetzt möchte ich eine weitere Klauselanweisung hinzufügen, die Zeilen von tbl_loan_master
erhält, die nicht auf der tbl_loanledger
war . DatenZeilen erhalten, die nicht in einer anderen Tabelle übereinstimmen
Beispiel:
tbl_borrowers
------------------------------------------
| id | first_name | last_name | deleted |
| 1 | Joe | Smith | 0 |
| 2 | Lily | Mag | 0 |
| 3 | Zen | Green | 0 |
| 4 | Kim | Chan | 0 |
| 5 | Bob | Mac | 1 |
| 6 | Ben | Cork | 0 |
------------------------------------------
tbl_loan_master
----------------------------------------------------------------------
| id | borrowers_id | loan | date_created | due_date | deleted |
| 1 | 4 | 300 | 2016/04/28 | 2017/04/28 | 0 |
| 2 | 1 | 100 | 2016/05/05 | 2017/05/05 | 0 |
| 3 | 2 | 500 | 2016/06/08 | 2017/06/08 | 0 |
| 4 | 1 | 200 | 2016/06/13 | 2017/06/13 | 0 |
| 5 | 3 | 150 | 2016/06/15 | 2017/06/15 | 0 |
| 6 | 6 | 50 | 2016/06/16 | 2017/06/16 | 0 |
----------------------------------------------------------------------
tbl_loanledger
------------------------------------------------------------------------------
| id | borrowers_id | loanmaster_id | payment | balance| date_created | deleted
| 1 | 4 | 1 | 50 | 250 | 2016/05/28 | 0
| 2 | 1 | 2 | 20 | 80 | 2016/05/25 | 0
| 3 | 1 | 2 | 30 | 50 | 2016/06/01 | 0
| 4 | 2 | 3 | 100 | 400 | 2016/06/09 | 0
| 5 | 2 | 3 | 50 | 350 | 2016/06/10 | 0
| 6 | 3 | 4 | 50 | 150 | 2016/06/16 | 0
------------------------------------------------------------------------------
Hier ist die Arbeits query:
$query = "SELECT `tbl_borrowers`.* , `tbl_loanledger`.*, `tbl_loan_master`.*
FROM `tbl_borrowers`
LEFT JOIN `tbl_loanledger`
ON `tbl_borrowers`.id = `tbl_loanledger`.borrower_id
LEFT JOIN `tbl_loan_master`
ON `tbl_loan_master`.id = `tbl_loanledger`.loanmaster_id
WHERE `tbl_borrowers`.deleted = 0 AND `tbl_loanledger`.deleted = 0 AND MONTH (`tbl_loanledger`.date_created) = MONTH(CURRENT_DATE)
GROUP BY `tbl_loanledger`.borrower_id
ORDER BY `tbl_borrowers`.last_name";
Das erwartete Ergebnis ausgibt den Kreditnehmer mit ihrer letzten Transaktion auf dem aktuellen Monat (der Juni ist) in Darlehen Ledger und auch in Form von Darlehen Konten. Wie Ben Cork, der nicht im Kreditbuch ist, ist er auf den Kreditkonten, aber ich möchte ihn auf dem Ergebnis-Set ausgeben. Die gelöschte Spalte bedeutet, wenn sie 0 ist, zeigt sie an, dass sie aktiv ist, wenn sie 0 ist, bedeutet dies, dass sie gelöscht wurde.
Erwartetes Ergebnis:
|First Name | Last Name | Due Date | Balance |
| Ben | Cork | 2017/06/16 | 50 |
| Joe | Smith | 2017/06/13 | 50 |
| Lily | Mag | 2017/06/08 | 350 |
| Zen | Green | 2017/06/15 | 150 |
'select * from tbl_borrowers eine LEFT JOIN tbl_loanledger b auf a.id = b.borrowers_id wo b.id ist null' –
Ich habe es als Kommentar hinzugefügt, weil ich nicht ganz sicher bin, ob ich die Frage verstehe, die die Abfrage und das Beispiel d gegeben hat ATA und Felder auf diesen Tabellen. –
Sorry über die Verwirrung @JorgeCampos, ich entferne einige der Code auf der Abfrage, die nicht in den Beispieldaten und Felder in der Tabelle enthalten ist. Wenn ich versuche, nur die Where 'tbl_loanledger'.id NULL auf die vorhandene Abfrage hinzuzufügen, werden alle Datensätze nicht angezeigt – zen