MySQL query

Gestart doorDylan2 reacties207 weergaven

3 berichten · pagina 1 van 1

Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Hoi,

Ik heb nu deze query:

Codeblok (voorbeeld.php):

1
2
3
4
5

SELECT
flights.*,
(SELECT cities.name FROM cities WHERE cities.id = flights.destinationId) AS destination,
(SELECT cities.name FROM cities WHERE cities.id = flights.departureId) as departure
FROM flights

wat het gewenste resultaat geeft:
Afbeelding

Nu is mijn vraag of dit allemaal in 1 query kan. Met joins loop ik vast omdat ik niet 2 keer dezelfde table kan joinen.

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

SELECT cities.name AS name, flights.*,
companies.name AS airlinerName,
flights.price AS pricePerSeat,
UNIX_TIMESTAMP(
FROM_UNIXTIME(flights.departureTime, %Y-%m-%d)
) AS departureDay,
(SELECT COALESCE(SUM(amountPpl), 0)
FROM bookings
WHERE flightId = flights.id
) AS seatsTaken
FROM flights
INNER JOIN cities
ON flights.destinationId = cities.id
INNER JOIN cities
ON flights.departureIdId = cities.id
INNER JOIN companies
ON flights.airlinerId = companies.id
HAVING flights.totalSeats - seatsTaken > 0

geeft:
#1066 - Not unique table/alias: cities
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Jponsen schreef:
http://stackoverflow.com/a/20236826/5347846

Iemand met hetzelfde probleem. Je moet je tables aliassen geven zodat SQL ze niet door elkaar haalt.
Ah thanksbiggrin
Codeblok (voorbeeld.php):

1
2
3

SELECT dep.name AS departure, des.name AS destination FROM flights
INNER JOIN cities dep ON (flights.departureId = dep.id)
INNER JOIN cities des ON (flights.destinationId = des.id)
Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren