Avatar billede decrypto Nybegynder
12. december 2003 - 13:29 Der er 8 kommentarer og
1 løsning

Joins med null værdier

Min SQL queriy virker ikke i MySQL
Jeg er ved at gå i panik.

Jeg startede med denne på SQL Server, hvor den virker:
-----------------------------------------------------
SELECT    theater.IDNR AS THEATER_ID, theater.NAME AS THEATER_NAME, row.NAME AS ROW_NAME, seat.SEATNUMBER, seat.IDNR AS SEAT_ID,
                      status.NAME AS STATUS
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
----------------------------------------------------

Meget enkelt, jeg vil selecte alle værdier, selvom 'SEAT' ikke har nogen 'STATUS' værdi dvs. <NULL>.
Avatar billede decrypto Nybegynder
12. december 2003 - 13:33 #1
Jeg har også prøvet med nedenstående:
--------------------------------------------
SELECT theater.IDNR AS THEATER_ID, theater.NAME AS THEATER_NAME, row.NAME AS ROW_NAME, seat.SEATNUMBER, seat.IDNR AS SEAT_ID, status.NAME AS STATUS

FROM theater, row, seat, eventshow, status, seat_reservation

WHERE row.IDNR = seat.ROW_ID AND
      theater.IDNR = row.THEATER_ID AND
      theater.IDNR = eventshow.THEATER_ID AND
      seat.IDNR = seat_reservation.SEAT_ID AND
      seat_reservation.SHOW_ID = eventshow.IDNR AND

      (seat_reservation.STATUS_ID IS NULL OR status.IDNR = seat_reservation.STATUS_ID) AND

      eventshow.IDNR = 1 AND
      row.THEATER_ID = 1

ORDER BY row.NAME, seat.SEATNUMBER DESC
---------------------------------------------
Avatar billede decrypto Nybegynder
12. december 2003 - 13:35 #2
Jeg har tænkt...
Klippet og klistret...

Men ingen succes.
Avatar billede mufoxe Nybegynder
12. december 2003 - 13:39 #3
Gider du hurtigt beskrive tael strukturen med nøgler og hvad du gerne vil have ud?
Avatar billede decrypto Nybegynder
12. december 2003 - 14:03 #4
Jeg sender et link:
Avatar billede decrypto Nybegynder
12. december 2003 - 14:12 #5
prøv at gå ind på -> http://www.webdecor.dk/gfx/db_tbl.gif
Avatar billede decrypto Nybegynder
12. december 2003 - 14:13 #6
Som du/I kan se vil jeg have STATUS på et SEAT uanset om den er NULL eller andet.

Hjælper det?
Avatar billede mufoxe Nybegynder
12. december 2003 - 14:19 #7
Har du prøvet at lave en OUTER JOIN kun imellem de to tabeller, du gerne vil have status for? (Bare for at se om det kan lade sig gøre).
Avatar billede decrypto Nybegynder
12. december 2003 - 18:45 #8
Nej, men jeg kan ikke så meget SQL. Har du et forslag?
Avatar billede decrypto Nybegynder
26. marts 2004 - 10:26 #9
Jeg fandt omsider selv ud af det.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester