Avatar billede danco Nybegynder
17. maj 2010 - 13:41 Der er 1 kommentar og
1 løsning

Join af 2 tabeller

Hejsa,
jeg sidder og oplever et stort problem med henblik på at skabe en join af tabeller.
jeg har følgende to tabeller hvor jeg gerne vil have joinet på roomNo og ende op med en liste af roomNo der IKKE står som booket mellem 2 specifikke datoer.


CREATE TABLE `room` (
  `roomNo` char(3) NOT NULL,
  `categoryNo` int(11) NOT NULL,
  `oceanView` tinyint(1) NOT NULL,
  `ready` tinyint(1) NOT NULL DEFAULT '1',
  `executive` tinyint(1) NOT NULL DEFAULT '0',
  `handicap` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`roomNo`),
  KEY `fk_room_category` (`categoryNo`),
  CONSTRAINT `fk_room_category` FOREIGN KEY (`categoryNo`) REFERENCES `category` (`categoryNo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `booking` (
  `bookingNo` int(11) NOT NULL AUTO_INCREMENT,
  `roomNo` char(3) DEFAULT NULL,
  `guestNo` int(11) DEFAULT NULL,
  `inDate` date DEFAULT NULL,
  `outDate` date DEFAULT NULL,
  `confirmed` tinyint(1) DEFAULT NULL,
  `paymentNo` int(11) DEFAULT NULL,
  PRIMARY KEY (`bookingNo`),
  KEY `fk_booking_room` (`roomNo`),
  KEY `fk_booking_guest` (`guestNo`),
  KEY `fk_booking_payment` (`paymentNo`),
  CONSTRAINT `fk_booking_payment` FOREIGN KEY (`paymentNo`) REFERENCES `payment` (`paymentNo`),
  CONSTRAINT `fk_booking_guest` FOREIGN KEY (`guestNo`) REFERENCES `guest` (`guestNo`),
  CONSTRAINT `fk_booking_room` FOREIGN KEY (`roomNo`) REFERENCES `room` (`roomNo`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Avatar billede thecokeguy Nybegynder
19. maj 2010 - 17:57 #1
Denne skulle gerne løse dit problem ;)

SELECT
    room.roomNo
FROM
    room
WHERE
    room.roomNo
NOT IN (
    SELECT
        room.roomNo
    FROM
        room, booking
    WHERE
        room.roomNo = booking.roomNo
    AND
        booking.inDate < '2010-07-15'
    AND
        booking.outDate > '2010-07-20'
)
Avatar billede danco Nybegynder
26. maj 2010 - 08:53 #2
Undskyld den lange svar tid.
Jeg har forsøgt mig med din join, men desværre kan jeg ikke få det ud af den som jeg søger.
Imidlertid har jeg fundet en anden programmeringsbaseret løsning. Så derfor lukker jeg spørgsmålet.
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