php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.02.2008, 15:36  
Neuer Benutzer
 
Registriert seit: 18.02.2008
Beiträge: 3
smogul
Standard Problem mit Join...

Hallo Zusammen...

Wir arbeiten gerade an einer "Verwaltungsdatenbank". Soll heißen man kan zBsp. bestimmte Geräte für einen Zeitraum vorbestellen und diese auch ausleihen. Jetzt gibt es u.a. zwei Tabellen, table_verliehen und table_vorbestellt..

In beiden steht drin von wann bis wann ein Gerät vorbestellt oder verliehen ist varchar timestamp). Wenn ein Gerät vorbestellt wird soll überprüft werden, ob in dem jeweiligen Zeitpunkt ein Gerät (Bsp.Laptop) noch frei ist.

Hier die Abfrage:

PHP-Code:
$sql_select =
SELECT  $table_technik_vorbestellen.*,$table_technik_verliehen.* 
FROM $table_technik_vorbestellen INNER JOIN 
$table_technik_verliehen ON ($table_technik_vorbestellen.Geraetetyp_vorbestellen = $table_technik_verliehen.Geraetetyp_verliehen)  
    WHERE 
                    (( Von_vorbestellt <= '$Von_timestamp' 
             AND 
                        Bis_vorbestellt >= '$Von_timestamp')
             OR 
                     ( Von_vorbestellt <= '$Bis_timestamp' 
             AND 
                        Bis_vorbestellt >= '$Bis_timestamp')) 

    OR 
                    (( Von_verliehen <= '$Von_timestamp' 
             AND
                      Bis_verliehen >= '$Von_timestamp')
             OR 
                      ( Von_verliehen <= '$Bis_timestamp' 
             AND
                      Bis_verliehen >= '$Bis_timestamp'))"

Bei dieser Abfrage bekomme ich alle Geräte die in dem Zeitraum bereits vorbestellt sind, aber nicht die Geräte, die verliehen sind!
Und das ist das Problem.
Ich muss aber beides wissen....


Könnt ihr mit helfen?

Grüßle Ronny
smogul ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.02.2008, 15:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Herzlich Willkommen hier im Forum!

Ich würde Dir zunächste eine optische Formatierung Deines SQL Strings nahelegen, damit überhaupt jemand Lust hat, sich damit zu befassen. vielleicht benutzt Du die Editierfunktion, fügst Zeilenumbrüche ein und rückst das Statement sinnvoll ein.
nikosch ist offline   Mit Zitat antworten
Alt 18.02.2008, 15:49  
Neuer Benutzer
 
Registriert seit: 18.02.2008
Beiträge: 3
smogul
Standard

@ nikosch77

danke für den Hinweis.

Hoffe jetzt sieht es besser aus...
smogul ist offline   Mit Zitat antworten
Alt 18.02.2008, 19:20  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Naja...

Ich glaube so (ohne Garantie). Geht davon aus, dass Bis-Einträge immer größer als Von-Einträge sind (konsistente Daten).

Code:
Verliehen
ID | von | bis

Bestellt
ID | von | bis

SELECT V.ID
FROM       Verliehen AS V 
LEFT JOIN Bestellt AS B 
ON V.ID=B.ID 
WHERE 
  (V.bis < $von OR $bis < V.von)
  AND
  (B.bis < $von OR $bis < B.von)
Irgendwie so. Bei mehreren Vorbestellungen/Verleihdaten pro Gerät wirds aber kniffelig. Da mußt Du dann wohl IN SELECT FROM bemühen. Ich vermute, das ist eigentlich das, was Du suchst.
nikosch ist offline   Mit Zitat antworten
Alt 18.02.2008, 20:05  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
willkommen hier bei uns im Forum!

Wenn du hier testbare SQL-Dumps postest kann ich auch nochmal drüber schauen.
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
[gelöst]LEFT JOIN, DINSTINCT und trotzdem doppelte?!?! stefanjann Datenbanken 10 06.02.2008 11:49
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
inner join aus db PHP Tipps 2006 8 22.01.2006 01:23
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] Abfrageproblem mit Inner Join Datenbanken 15 29.11.2005 18:17
[Erledigt] LEFT JOIN Query Bildung Datenbanken 6 04.11.2005 15:24
sql-Abfrage inner join - unerklärliches Problem havok Datenbanken 6 17.10.2005 14:32
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
Join Problem Simon9990 PHP Tipps 2005-2 1 21.07.2005 22:15
Problem mit Where und Join Datenbanken 5 06.07.2005 18:05
[Erledigt] Problem mit JOIN Datenbanken 7 27.08.2004 16:00
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.