10. december 2003 - 20:55Der er
20 kommentarer og 1 løsning
Problemer med joins
Jeg har mange problemer med joins i mysql. Jeg tror jeg mangler paranteser.
Jeg har vha SQL server lavet nogle queries der ikke virker i MySQL. De virker fint i Access og SQL Server.
Hvad %¤"%¤ er der galt
Her er min query: ------------------------------------------- SELECT EVENTSHOW.IDNR, EVENTSHOW.BASE_PRICE, SHOWTIME.SHOWTIME_PRICE, CATEGORY.PRICE, ROW.NAME, CLASS.CLASS_PRICE
FROM (SHOWTIME INNER JOIN (CATEGORY INNER JOIN (THEATER INNER JOIN EVENTSHOW ON THEATER.IDNR = EVENTSHOW.THEATER_ID) ON CATEGORY.IDNR = EVENTSHOW.CATEGORY_ID) ON SHOWTIME.IDNR = EVENTSHOW.SHOWTIME_ID) INNER JOIN (CLASS INNER JOIN ROW ON CLASS.IDNR = ROW.CLASS_ID) ON THEATER.IDNR = ROW.THEATER_ID
SELECT eventshow.IDNR AS EVENSHOW_ID, eventshow.BASE_PRICE, showtime.SHOWTIME_PRICE, CATEGORY.PRICE,ROW.NAME,CLASS.CLASS_PRICE
FROM (((showtime INNER JOIN category) INNER JOIN theater INNER JOIN eventshow ON theater.IDNR=eventshow.THEATER_ID ON category.IDNR=eventshow.CATEGORY_ID) ON showtime.IDNR=eventshow.SHOWTIME_ID) INNER JOIN class INNER JOIN row ON class.IDNR=row.CLASS_ID ON theater.IDNR=row.THEATER_ID WHERE eventshow.IDNR=1;
Jeg har også en right outer join der giver mig problemos.
-------------------- SQL ---------------------
SELECT theater.IDNR AS THEATER_ID, theater.NAME AS THEATER_NAME, row.NAME AS ROW_NAME, seat.SEATNUMBER, status.IDNR AS STATUS_ID
FROM status INNER JOIN seat_reservation ON status.IDNR = seat_reservation.STATUS_ID RIGHT OUTER JOIN theater INNER JOIN row INNER JOIN seat ON row.IDNR = seat.ROW_ID ON theater.IDNR = row.THEATER_ID INNER JOIN eventshow ON THEATER.IDNR = eventshow.THEATER_ID ON seat_reservation.SHOW_ID = eventshow.IDNR AND seat_reservation.SEAT_ID = seat.IDNR
WHERE (eventshow.IDNR = 1) AND (row.THEATER_ID = 1)
ORDER BY row.NAME, seat.SEATNUMBER DESC --------------------------------------------------------------
SELECT eventshow.IDNR AS EVENSHOW_ID, eventshow.BASE_PRICE, showtime.SHOWTIME_PRICE, CATEGORY.PRICE, ROW.NAME, CLASS.CLASS_PRICE
FROM (showtime INNER JOIN (category INNER JOIN (theater INNER JOIN eventshow ON theater.IDNR=eventshow.THEATER_ID) ON category.IDNR=eventshow.CATEGORY_ID) ON showtime.IDNR=eventshow.SHOWTIME_ID) INNER JOIN (class INNER JOIN row ON class.IDNR=row.CLASS_ID) ON theater.IDNR=row.THEATER_ID
SELECT EVENTSHOW.IDNR, EVENTSHOW.BASE_PRICE, SHOWTIME.SHOWTIME_PRICE, CATEGORY.PRICE, ROW.NAME, CLASS.CLASS_PRICE FROM SHOWTIME,CATEGORY,THEATER,EVENTSHOW,CLASS,ROW WHERE THEATER.IDNR = EVENTSHOW.THEATER_ID AND CATEGORY.IDNR = EVENTSHOW.CATEGORY_ID AND SHOWTIME.IDNR = EVENTSHOW.SHOWTIME_ID AND CLASS.IDNR = ROW.CLASS_ID AND THEATER.IDNR = ROW.THEATER_ID AND EVENTSHOW.IDNR=1
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.