Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Daten aus zwei Tabellen; nach rechter Tabelle Sortieren [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Daten aus zwei Tabellen; nach rechter Tabelle Sortieren


 
pekka
18-04-2002, 16:25 
 
Kann mir jemand bei diesem SQL-Problem helfen? Kann nicht mehr klar denken & bin unter Zeitdruck....

Ich habe zwei Tabellen:

items
---------------------------
id | parent | globalid | name

events
----------------------------
globalid | uhrzeit | datum | eintritt


Die beiden Tabellen sind über "globalid" miteinander verknüpft. Es ist aber eine 1:1-Beziehung - jedes Event in der Events-Tabelle hat einen zugehörigen Datensatz in der Tabelle "items". (Warum das so ist, ist eine lange Geschichte. Ich weiss schon was ich tu :-)

Nun möchte ich alle Datensätze aus "items", die den Parent x haben, zusammen mit den zugehörigen aus "events" auswählen und - das ist der Haken - nach "uhrzeit" in "events" sortieren.

Wer hat mir den richtigen JOIN?

 
hand
18-04-2002, 18:27 
 
select id, parent, name, datum, uhrzeit, eintritt from items, events where parent = 'x' and items.globalid = events.globalid oder by uhrzeit

 
Troublegum
18-04-2002, 18:28 
 
Bin mal davon ausgeganen, dass die Felder uhrzeit und datum vom Typ time und date sind.

SELECT i.id,i.parent,e.globalid,i.name,e.uhrzeit,e.datum,e.eintritt
FROM items i LEFT JOIN events e ON i.globalid=e.globalid
WHERE i.parent=PARENTID
ORDER BY e.datum ASC,e.uhrzeit ASC;

Damit werden die Einträge aufsteigend nach Datum und danach aufsteigend nach der Uhrzeit sortiert.
Du kannst auch einfach nur ORDER BY e.uhrzeit ASC/DESC nehmen wenn du willst. So scheint es mir aber sinnvoller, da dann das Datum nicht durcheinander gerät...

 
pekka
19-04-2002, 00:26 
 
Wunderbar, funktioniert, vielen Dank!


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:29 Uhr.