Hier ist mein Datenbankschema:Wie wird nur der erste übereinstimmende Wert aus einer anderen Tabelle in MySQL ausgewählt?
Zahlungs Tabelle:
+------------+--------+--------+---------------------+
| payment_id | tab_id | amount | created |
+------------+--------+--------+---------------------+
| 1 | 1 | 5 | 2017-05-22 12:14:27 |
| 2 | 2 | 10 | 2017-05-22 12:15:21 |
| 3 | 2 | 1 | 2017-05-22 13:11:14 |
+------------+--------+--------+---------------------+
Tab Tabelle:
+------------+----------------+
| tab_id | service_charge |
+------------+----------------+
| 1 | 1 |
| 2 | 3 |
+------------+----------------+
I Gesamtmengen (amount
+ service_charge
) pro Zahlung, aber service_charge
soll berechnen müssen sein nur in der ersten Zahlung enthalten, die mit tab_id
übereinstimmt.
Meine aktuelle Abfrage:
SELECT
payment.payment_id,
(payment.amount + tab.service_charge) as total_amount,
payment.created
FROM payment
INNER JOIN tab
ON payment.tab_id = tab.tab_id;
Tatsächliches Ergebnis:
Wie Sie unten service_charge
von tab_id = 2
zweimal enthalten sehen (payment_id = 2
und payment_id = 3
).
+------------+-----------------+---------------------+
| payment_id | total_amount | created |
+------------+-----------------+---------------------+
| 1 | 6 | 2017-05-22 12:14:27 |
| 2 | 13 | 2017-05-22 12:15:21 |
| 3 | 4 | 2017-05-22 13:11:14 |
+------------+-----------------+---------------------+
Erwartetes Ergebnis:
total_amount
sollte nicht service_charge
in payment_id = 3
umfassen, wie unten gezeigt.
+------------+-----------------+---------------------+
| payment_id | total_amount | created |
+------------+-----------------+---------------------+
| 1 | 6 | 2017-05-22 12:14:27 |
| 2 | 13 | 2017-05-22 12:15:21 |
| 3 | 1 | 2017-05-22 13:11:14 |
+------------+-----------------+---------------------+
Siehe auch: [Warum sollte ich ein liefern MCVE für was scheint mir eine sehr einfache SQL-Abfrage?] (Https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to- Ich-habe-eine-sehr-einfache-SQL-Abfrage) – Strawberry
@Strawberry Ich habe einen Blick darauf geworfen, aber es ist mir immer noch nicht klar, wie dieses Thema mir helfen kann, das Problem zu lösen, das ich habe. –
Lesen Sie die angenommene Antwort (die 106 Mal aktualisiert wurde). Befolgen Sie die einfachen Anweisungen. Und schau, was passiert. – Strawberry