Ich habe eine Benutzer-Tabelle in der Datenbank, wo alle Benutzer des Systems gespeichert sind. Die Tabelle hat eine user_id und einen business_name und einen first_name. Einige Benutzer sind Händler und erhalten einen Firmennamen, einige Benutzer sind Verbraucher und erhalten einen Vornamen. In einer zweiten Tabelle habe ich Transaktionen mit einer user_id und einer merchant_id (die die Transaktion definieren) und einen Betrag. Beide IDs verweisen auf Benutzertabelle.Wie erhalten Sie verschiedene Ergebnisse von einer MySQL-Tabelle?
Table users:
user_id bus_name first_name role_id
1 Thomas 10
2 comp1 7
3 Peter 10
4 comp2 7
(role_id is defining with 10=consumer, 7=merchant)
Table transactions:
trans_id amount user_id merchant_id
1 12 1 2
2 23 3 2
3 34 3 4
4 19 1 4
Jetzt möchte ich mit einem Ergebnis wie eine Tabelle, eine Abfrage haben: Diese Tabelle, die Transaktion mit dem Betrag, user_id, first_name, merchant_id und bus_name enthalten sollte.
Ich möchte dieses Ergebnis erhalten:
trans_id amount user_id first_name merchant_id bus_name
1 12 1 Thomas 2 comp1
2 23 3 Peter 2 comp1
3 34 3 Peter 4 comp2
4 19 1 Thomas 4 comp2
ich das Problem, dass entweder ich bekomme nur die first_name und leer bus_name oder erhalte ich nur die bus_name aber leer first_name. ich links bin mit beitreten:
...
left join `users`
on(
(`transactions`.`user_id` = `users`.`user_id`)
)
...
Aber dafür würde ich für user_id = 1 die first_name = Thomas und die bus_name = ‚‘ wäre leer, weil ich auf eine Zeile in der Tabelle nur als Referenz und nicht auch zu einem anderen Benutzer mit user_id = 2.
Aber ich will, wie etwas sagen:
for trans_id=1
get first_name FROM users WHERE transactions.user_id = users.user_id
AND
get bus_name FROM users WHERE transactions.merchant_id = users.user_id
Vielen Dank für Ihre Hilfe, ich so viele Dinge versucht, aber es funktioniert nicht.
Großartig, danke, es hat funktioniert! – user3899575