Ich habe mehrere Tabellen Flüge Daten darstellen:von Artikel den niedrigsten Preis wählen in SQL mit mehreren verbindet
Flüge:
ID | NMB | DATE
1 | CA1 | 2017-05-26
2 | CA1 | 2017-05-27
3 | CA2 | 2017-05-26
4 | CA2 | 2017-05-27
Flughäfen:
ID | NAME
1 | JFK
2 | LAX
flights_arrival:
ENTITY_ID (flights) | TARGET_ID (airports)
1 | 1
2 | 1
3 | 2
4 | 2
flights_price:
ENTITY_ID (flights) | VALUE
1 | 455
2 | 650
3 | 750
4 | 880
Ich versuche, den niedrigsten Preis für jeden Flug für jeden Ankunftsflughafen auszuwählen. Was ich will, ist dies:
ID | ARRIVAL | PRICE
1 | 1 | 455
3 | 2 | 750
Dies ist die SQL-Abfrage, die ich gebaut, aber die MIN
auf den flights_price
angewandte Funktion kehrt nicht nur den niedrigsten Preis für den Flug aber alle Einträge:
SELECT
f.id AS id,
fa.target_id AS arrival,
MIN(fp.value) AS price
FROM flights_price AS fp
JOIN flights AS f ON fp.entity_id=f.id
JOIN flights_arrival AS fa ON fa.entity_id=f.id
WHERE
fa.target_id IN (1, 2)
GROUP BY
fa.target_id,
fp.value,
f.id;
Was Ich mache falsch? Ich habe auch Unterabfragen ohne Erfolg versucht.
In der Regel eine Gruppen durch das, was man wählt. Wenn die Milliarde oder so Antworten auf ähnliche Fragen hier nicht helfen, siehe https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to- ich-bin-ein-sehr-einfach-sql-query – Strawberry
was 'ARRIVAL'-Spalte hier gehört zu welcher Tabellenspalte –
'Arrival' gehört zu' flights_arrival' aliased von 'fa'. –