![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 853
|
Hi. Ich hab zwei Tabellen (MySQL 5.0.*), die ich miteiander verknüpfen will. Vereinfacht: Code: news: id, page_id, created_at sticky_news id, page_id, order Ich kann die beiden Tabellen nicht zusammenfassen, da sie einer unterschiedlichen Versionierung unterliegen. Die Reihenfolge richtet sich nach der Version der Komponente, die die News-Liste ausgibt, die einzelnen News werden in den einzelnen Seiten erstellt (es gibt keinen News-Eintrag, der nicht einer Seite zugeordnet ist) und folgen von daher der Versionierung der Seiten. Nun brauche ich eine Abfrage, die mir n Beiträge ausgibt (deren Text-Feld nicht leer ist) und zwar Sortiert nach "sticky_news.order" und danach nach "news.created_at. Ich muss also für alle News-Datensätze, die nicht in sticky_news auftauchenden "order"-Wert auf 0 setzen. Geht das in einer Abfrage? "Gib mir 10 Datensätze sortiert nach `order` DESC, `created_at` DESC mit news.page_id = sticky_news.page_id. Falls ein News-Eintrag (news.page_id) nicht in sticky_news (sticky_news.page_id) auftaucht, dann setze `order` auf 0" Wäre prima, wenn das ginge und mir jemand zeigen kann, wie es geht. Basti |
| | |
| | Nach oben #2 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 687
|
Du hast die Lösung doch schon, du musst nur die Reihenfolge umdrehen: Erst nach Datum und dann nach Sticky sortieren lassen. Und schon sollte es laufen, da bei der Sortierung meiner Meinung nach egal ist, ob in dem Feld etwas steht oder nicht. Oder hast du ein Problem mit der Verknüpfung der Tabellen?
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #3 | ||
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 853
| Zitat:
Zitat:
Basti | ||
| | |
| | Nach oben #4 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 687
|
Ja, genau das meinte ich doch. Pass mal auf: Code: [...] ORDER BY `datum` DESC, `order` DESC [...]
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #5 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 853
|
Sicher? Wundert mich ... aber ist auch ein Detail. Wichtiger ist die Abfrage. Es geht zwar auch in zwei Abfragen (erst die Sticky-News, dann Limit entsprechend runtersetzen und die bereits gefundenen Datensätze (page_id) in eine NOT IN Klausel für die Abfrage auf alle News, sortiert nach Datum eben), aber es würd mich wundern, wenn es da nicht eine Möglickeit gäbe, das in einer zu erledigen. Basti |
| | |
| | Nach oben #6 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 687
|
Ich habe eben mal folgendes schnell getestet, bevor ich wieder weiter muss: Tabelle 1: id | text | datetime 1 | hallo | 1.11.2006 2 | welt | 2.11.2006 3 | hallo welt | 3.11.2006 4 | kein order 1 | 4.11.2006 5 | kein order 2 | 5.11.2006 Tabelle 2: id | tbl1_id | order 1 | 2 | 3 2 | 1 | 1 3 | 3 | 2 Abfrage: Code: SELECT * FROM `tabelle1` AS `t1` LEFT OUTER JOIN `tabelle2` AS `t2` ON `t2`.`tbl1_id`=`t1`.`id` ORDER BY `t2`.`order` DESC, `t1`.`datetime` DESC id | text | datetime | id | tbl1_id | order 2 | welt | 2.11.2006 | 1 | 2 | 3 3 | hallo welt | 3.11.2006 | 3 | 3 | 2 1 | hallo | 1.11.2006 | 2 | 1 | 1 5 | kein order 2 | 5.11.2006 | NULL | NULL | NULL 4 | kein order 1 | 4.11.2006 | NULL | NULL | NULL Fazit: Ich hatte unrecht, die Sortierung funktioniert leider doch nicht so, wie ich das zuerst dachte, man muss also doch erst nach dem Order sortieren lassen und dann das Datum sortieren. Ich hänge mal die Test-Tabellen an, dann kannst du dich nochmal selber davon überzeugen.
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Auslesen zweier verschiedener Datensätze in einem Query (mySQL) | Chr!s | Datenbanken | 8 | 14.11.2006 19:57 |
| [PHP] Fremde Webseiten auslesen | WarrenFaith | Tutorials | 3 | 14.03.2006 15:59 |
| Anzahl der Datensätze ermitteln | ehli75 | Datenbanken | 3 | 25.05.2005 22:11 |
| [SQL] Zufallsdatensatz auslesen - MySQL 3.23 | Ben | Tutorials | 0 | 16.03.2005 00:06 |
| daten in array eintragen und auslesen | zerberos | Allgemeine Java-Programmierung | 15 | 20.02.2005 21:49 |