SQL-Query-Verknüpfung

Hallo Newsgroup,

folgendes Problem: ich habe 2 Tabellen

Aus Tabelle tab benötige ich lat_com,fr_id,timesort und aus tab2 nick.
Wie kann man aus beiden Tabellen mittels einer SQL-Abfrage die Daten
sammeln wobei lat_com aus tab mit com aus tab2 übereinstimmen muss und
timesort größer als time()-86400.
Es handelt sich hiebei um die Auflistung der Themen der letzen 24 Stunden.

Dieses SQL-Query liefert jedoch 0 Datensätze.

"SELECT t1.lat_com, t1.fr_id, t1.timesort, t2.nick
FROM tab t1, tab2 t2 WHERE t1.timesort>=".(time()-86400)."
AND t1.lat_com=t2.com ORDER BY t1.timesort";

Gibt es eine andere Möglichkeit, wenn möglich ein SQL-Query?
Hans Friedrich Knoppe [ Fr, 17 Februar 2006 11:57 ] [ ID #1193266 ]

Re: SQL-Query-Verknüpfung

Hans Friedrich Knoppe wrote:
> Dieses SQL-Query liefert jedoch 0 Datensätze.
>
> "SELECT t1.lat_com, t1.fr_id, t1.timesort, t2.nick
> FROM tab t1, tab2 t2 WHERE t1.timesort>=".(time()-86400)."
> AND t1.lat_com=t2.com ORDER BY t1.timesort";

Falsch ist diese Abfrage nicht, aber a) bist du sicher, dass in timesort
auch Unix-Zeitstempel und nicht SQL-DATETIME Daten gespeichert sind, und b)
bist du sicher, dass das Problem nicht an falschen Zeitstempeln liegt?

Lass dir doch mal die fertige Abfrage, also inklusive dem, was für
(time()-86400) ausgegeben wird, ausgeben und siehe nach, ob es in der
Datenbank tatsächlich Spalten gibt, die diesem Kriterium entsprechen.
Möglicherweise lag der Fehler schon beim Schreiben der Einträge.
Markus Pfefferle [ Fr, 17 Februar 2006 17:20 ] [ ID #1193268 ]

Re: SQL-Query-Verknüpfung

"Markus Pfefferle"
> Falsch ist diese Abfrage nicht, aber a) bist du sicher, dass in timesort
> auch Unix-Zeitstempel und nicht SQL-DATETIME Daten gespeichert sind, und
> b)
> bist du sicher, dass das Problem nicht an falschen Zeitstempeln liegt?
>
> Lass dir doch mal die fertige Abfrage, also inklusive dem, was für
> (time()-86400) ausgegeben wird, ausgeben und siehe nach, ob es in der
> Datenbank tatsächlich Spalten gibt, die diesem Kriterium entsprechen.
> Möglicherweise lag der Fehler schon beim Schreiben der Einträge.

Hier mal alles im Überblick:

forum_topics: http://img124.imageshack.us/img124/4131/tab17cw.jpg
forum_comments: http://img119.imageshack.us/img119/6721/tab27ax.jpg

Beipieleinträge forum_topics:
http://img465.imageshack.us/img465/5415/tab39oe.jpg
Beipieleinträge forum_comments:
http://img465.imageshack.us/img465/7793/tab42ri.jpg

Hier mal betroffene Einträge: Habe malalles zusammengestellt.

http://img481.imageshack.us/img481/2272/tab53dd.jpg
Hans Friedrich Knoppe [ Fr, 17 Februar 2006 18:09 ] [ ID #1193269 ]

Re: SQL-Query-Verknüpfung

Hans Friedrich Knoppe wrote:
> "Markus Pfefferle"
>
>>Falsch ist diese Abfrage nicht, aber a) bist du sicher, dass in timesort
>>auch Unix-Zeitstempel und nicht SQL-DATETIME Daten gespeichert sind, und
>>b)
>>bist du sicher, dass das Problem nicht an falschen Zeitstempeln liegt?
>>
>>Lass dir doch mal die fertige Abfrage, also inklusive dem, was für
>>(time()-86400) ausgegeben wird, ausgeben und siehe nach, ob es in der
>>Datenbank tatsächlich Spalten gibt, die diesem Kriterium entsprechen.
>>Möglicherweise lag der Fehler schon beim Schreiben der Einträge.
>
>
> Hier mal alles im Überblick:
>
> forum_topics: http://img124.imageshack.us/img124/4131/tab17cw.jpg
> forum_comments: http://img119.imageshack.us/img119/6721/tab27ax.jpg
>
> Beipieleinträge forum_topics:
> http://img465.imageshack.us/img465/5415/tab39oe.jpg
> Beipieleinträge forum_comments:
> http://img465.imageshack.us/img465/7793/tab42ri.jpg
>
> Hier mal betroffene Einträge: Habe malalles zusammengestellt.
>
> http://img481.imageshack.us/img481/2272/tab53dd.jpg
>
>

Was für Drogen nimmst du denn? Wenn ich mir Bilder ansehen will start
ich die Google Bildersuche. Copy+Paste des Textes reicht.

Welches DBMS verwendest du?

mysql> select time();
ERROR 1064: You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use
near '()' at line 1

Postgresql=# select time();
ERROR: syntax error at or near ")" at character 13

Du stocherst arg im Trüben oder? Zerlege große Queries in kleine Happen
und baue sie nach und nach zusammen, irgendwann wird es nicht mehr
funktionieren und du hast deinen Fehler.


gruß, Frank
Frank Schenk [ Fr, 17 Februar 2006 19:08 ] [ ID #1193272 ]

Re: SQL-Query-Verknüpfung

Frank Schenk wrote:
> Welches DBMS verwendest du?
>
> mysql> select time();
> ERROR 1064: You have an error in your SQL syntax. Check the manual
> that corresponds to your MySQL server version for the right syntax to
> use near '()' at line 1
>
> Postgresql=# select time();
> ERROR: syntax error at or near ")" at character 13

Dir ist vielleicht nicht aufgefallen, dass a) seine time()-Funktion vom
SQL-String durch String-Verknüpfungs-Operatoren getrennt und wir uns b) in
einer PHP-Untergruppe befinden, oder?
Markus Pfefferle [ Mo, 20 Februar 2006 10:24 ] [ ID #1196380 ]

Re: SQL-Query-Verknüpfung

Hans Friedrich Knoppe wrote:
>> Lass dir doch mal die fertige Abfrage, also inklusive dem, was für
>> (time()-86400) ausgegeben wird, ausgeben und siehe nach, ob es in der
>> Datenbank tatsächlich Spalten gibt, die diesem Kriterium entsprechen.
>> Möglicherweise lag der Fehler schon beim Schreiben der Einträge.
>
> Hier mal alles im Überblick:
>
> forum_topics: http://img124.imageshack.us/img124/4131/tab17cw.jpg
> forum_comments: http://img119.imageshack.us/img119/6721/tab27ax.jpg
>
> Beipieleinträge forum_topics:
> http://img465.imageshack.us/img465/5415/tab39oe.jpg
> Beipieleinträge forum_comments:
> http://img465.imageshack.us/img465/7793/tab42ri.jpg
>
> Hier mal betroffene Einträge: Habe malalles zusammengestellt.

Ist jetzt mal ein schneller Schuss ins Blaue, aber versuch es doch mal mit
normalen Integer-Feldern, also INT(10) und nicht INT(100). Um 100-stellige
Ganzzahlen darzustellen, reicht der Datenbank nichtmal mehr der BIGINT Typ
und daher muss sie wahrscheinlich mit Gleitkommazahlen arbeiten, die in
ungünstigen Fällen solche Kuriositäten erklären könnten.
Markus Pfefferle [ Mo, 20 Februar 2006 10:36 ] [ ID #1196381 ]
PHP » de.comp.lang.php.datenbanken » SQL-Query-Verknüpfung

Vorheriges Thema: Benutzer soll im phpMyAdmin nur Datenbank mit eigenem Namen sehen
Nächstes Thema: [FAQ/2006-02-19] Loesungen fuer deine PHP-Probleme