Monty Burns: JOIN THIS!!!

hier mal ne knobelaufgabe bei der ihr neben der prüfung eures eigenen könnens auch einem verzweifelten mysql-benutzer helfen könnt.

ich hab hier folgende SELECTS und will die joinen
ich bin schon seit tage dran und geb immer wieder verzweifelt auf

es sind 4 tabellen im spiel
ich will aus meiner db auslesen ob ein angebot, das in einem gewissen zeitraum gültig ist schon belegt ist
dafür suche ich bei dem 1. select ein angebot raus das in diesen zeitraum fällt

im zweiten select summiere ich die belegten zimmer und überprüfe ob noch welche zur verfügung stehen

das muss doch in einem statement möglich sein oda?

hier die SELECTS:
1.
SELECT
angebot_bloecke.ind_angebot, /* diese ausgabe soll im zweiten select das suchkriterium sein */
/* weiter ausgaben */
FROM
angebot_bloecke join angebot join hotel
ON
angebot_bloecke.ind_angebot = angebot.ind_angebot &&
angebot.ind_hotel = hotel.ind_hotel
WHERE
angebot.ind_messe = /* ein index */ &&

angebot_bloecke.start = /* ein datum */ &&
angebot_bloecke.ende = /* ein datum */

2.
SELECT
buchung.ind_angebot,
@vergebene_zimmer := sum(buchung.zimmer)
FROM
buchung join angebot
ON
angebot.ind_angebot= buchung.ind_angebot
WHERE
buchung.ind_angebot = /* die ausgabe aus dem ersten select*/ &&
angebot.zimmer > @vergebene_zimmer
GROUP BY
buchung.ind_angebot

freu mich wenn ihr mir helfen könnt
bin aber nicht sauer wenn nicht ;-)

gruss

Monty Burns

  1. yo,

    das muss doch in einem statement möglich sein oda?

    auf den ersten blick würde ich sagen, das ist möglich. dabei sollte man aber beachten, dass nicht alles was möglich ist auch besser ist. es kann gut sein, dass zwei abfragen besser (performance) als eine sind. aber schaun wir mal.

    die erste frage ist, ob du eine neuere version von mysql hast, die eventuell auch unterabfragen kann. vielleicht ist das nicht notwendig, aber wäre gut zu wissen.

    des weiteren ist es immer besser, ein datenbank-desgin zu kennen, anstelle es mühnsam aus deinen beiden select statements herzuleiten. sag uns doch mal welche tabellen du hast, was sie abbilden sollen und wie sie miteinander verbunden sind.

    Ilja