php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.04.2006, 16:24  
Neuer Benutzer
 
Registriert seit: 16.04.2006
Beiträge: 3
hans_
Standard datetime - komplexes select

ich hab ein table mit den spalten fk_foo, foo und datetime und möchte nun nur diejenigen datensätze selecten, wo 1) fk_foo gleich ist, 2) foo einen anderen wert hat und 3) datetime maximal x zeit nach dem anderen fk_foo mit dem anderen foo liegt.

wär nett wenn jemand 'nen ansatz hat!
hans_ ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.04.2006, 20:04  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Hallo und Willkommen im Forum!
So ganz bin ich durch dein Problem noch nicht durchgestiegen. Zeige doch einfach mal, wie deine Tabellenstruktur genau aussieht, packe ein paar Beispieldatensätze dazu und zeige dann auch noch, welche Datensätze du letztendlich mit deiner Abfrage ermitteln möchtest.
xabbuh ist offline   Mit Zitat antworten
Alt 16.04.2006, 21:33  
Neuer Benutzer
 
Registriert seit: 16.04.2006
Beiträge: 3
hans_
Standard

sorry, klar, bei erstem post sagt man: Hallo Forum!
auch sorry daß ich mich reichlich unklar ausgedrückt hab. also die table incl. inhalt sieht etwa so aus:

Code:
---------------------------------------------------
id		fk_foo	foo_varchar	datetime
---------------------------------------------------
1		1			A				2006-03-14 09:23:22
2		1			B				2006-03-14 07:23:22
3		1			B				2006-03-14 06:23:22
---------------------------------------------------
4		2			A				2006-03-14 09:23:22
5		2			A				2006-03-14 07:23:22
---------------------------------------------------
6		3			A				2006-03-14 09:23:22
7		3			B				2006-03-14 01:23:22
---------------------------------------------------
und meine abfrage soll nur die datensätze mit der id 1 und 2 ausspucken, da nur bei ihnen die bedingungen zutreffen: 1) fk_foo gleich, 2) foo_varchar unterschiedlich, 3) datetime weniger als 6 stunden auseinander.

für mich durchaus eine harte nuß
hans_ ist offline   Mit Zitat antworten
Alt 17.04.2006, 02:58  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Als kleine Idee (bis xabuuh einen besseren Lösungs-Vorschlag hat ). Ich würde es so probieren:
SELECT A.* FROM tabelle AS A JOIN tabelle AS B ON A.fk_foo=B.fk_foo AND A.foo_varchar<>B.foo_varchar AND TIMEDIFF(A.datetime, B.datetime)<'06:00:00.000000'
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 17.04.2006, 09:32  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Werbegeschenk
(bis xabuuh einen besseren Lösungs-Vorschlag hat ;) ).
Erst setzt du mich unter Druck und dann kannst du nicht einmal meinen Namen richtig schreiben. ;-)

Einen Vorschlag hätte ich aber trotzdem:
Code:
SELECT
    *
FROM
    foo AS a
INNER JOIN
    foo AS b USING(fk_foo)
WHERE
    a.foo_varchar != b.foo_varchar AND
    TIMEDIFF(a.datetime, b.datetime) BETWEEN '00:00:00' AND '06:00:00'
Mit dieser Abfrage kriege ich allerdings auch die Datensätze mit der id 1 und 3 als Ergebnis.
xabbuh ist offline   Mit Zitat antworten
Alt 17.04.2006, 22:47  
Neuer Benutzer
 
Registriert seit: 16.04.2006
Beiträge: 3
hans_
Standard

danke euch! das inner join bringt mich gut weiter!
hans_ 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] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] Mysql Insert Select + Concat Hu5eL Datenbanken 14 10.06.2008 10:39
SELECT AS geht bei AVG net cyberholic Datenbanken 0 04.05.2006 09:43
Select zusammenfügen... chris3001 Datenbanken 15 27.04.2006 10:54
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
SELECT WHERE datetime abfrage - Optimierung mrSpok Datenbanken 15 23.03.2006 19:08
SELECT Liste aus MySQL verarbeiten jensK PHP Tipps 2006 9 09.02.2006 16:08
[Erledigt] Gleiches Select aber unterschiedliches Ergebnis Datenbanken 6 05.11.2005 14:13
Probleme mit Inner Select Datenbanken 0 19.10.2005 15:22
selbst gelöst! Select <option> kleines Problem Dropdow 24bits PHP Tipps 2005-2 0 15.10.2005 19:19
[Erledigt] SQL =&gt; CHARACTER zu DATETIME Datenbanken 1 23.08.2005 13:29
Warum manchmal "`" um Felder bei Select Unbekanntes_Pferd Datenbanken 4 02.05.2005 14:11
[Erledigt] SELECT in SELECT PHP Tipps 2005 5 06.04.2005 22:30
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
selektierter wert in select box anzeigen PHP Tipps 2004 6 30.08.2004 13:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select date time, html datetime, http://www.php.de/datenbanken/39144-datetime-komplexes-select.html, datetime mit php in tabelle

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:23 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.