php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.06.2011, 06:50  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 929
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard [Erledigt] Query Problem

Ich versuche die neuesten Beiträge aus einem Forum auszulesen.
An und für sich kein Problem, aber ich will den Thread nur 1x anzeigen lassen.

Mein Query:

PHP-Code:
       $postsQuery "
        SELECT post.*,
               thread.*,
               post.*,
               node.title AS node_title,
               user.avatar_date
        FROM xf_thread AS thread
        LEFT JOIN xf_post AS post ON
                        (post.thread_id = thread.thread_id)
        LEFT JOIN xf_user AS user ON
                        (user.user_id = post.user_id)
        LEFT JOIN xf_node AS node ON
                        (node.node_id = thread.node_id)
      WHERE
      post.post_id IN
      (
      SELECT post.post_id AS post_id
        FROM xf_post as post
        WHERE
        post.message_state = 'visible'
        group by post.thread_id
        ORDER BY post.post_date DESC
      )
      ORDER BY post.post_date DESC
LIMIT " 
$this->_getMaxValue($max) . "
"


Post Tabelle hat folgenden Inhalt:
erledigt-query-problem-rows.jpg

Jedoch liefert mir der Subquery der die post Ids holt nur:

erledigt-query-problem-query.jpg

Hier sieht man, dass zB im Thread 233 die neueste Antwort fehlt.
Hat jemand einen Ansatz wo ich mit der Problemsuche beginnen muss?
ragtek ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.06.2011, 08:20  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

EDIT ...

das Problem ist dein GROUP_BY Thread_id .... ich trau' mich kaum es zu sagen, der Ausweg ist ein weiterer SubSelect, der VORHER die Posts nach dem Date sortiert, so dass du dann beim Group_by immer nur den neuesten Post eines Threads hast

beziehungsweise - bau deine Abfrage um, so dass group_by nicht im sub-query angewendet wird, sondern außen herum
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (28.06.2011 um 08:31 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 29.06.2011, 00:05  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 929
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard

Hm, funktionierte beides nicht
ragtek ist offline   Mit Zitat antworten
Alt 29.06.2011, 09:12  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

PHP-Code:
$postsQuery "
  SELECT 
    post.*,
    thread.*,
    node.title AS node_title,
    user.avatar_date
  FROM xf_thread AS thread
  LEFT JOIN xf_post AS post
  ON (post.thread_id = thread.thread_id)
  LEFT JOIN xf_user AS user 
  ON (user.user_id = post.user_id)
  LEFT JOIN xf_node AS node 
  ON (node.node_id = thread.node_id)
  WHERE
    post.post_id IN
    (
      SELECT post_id,thread_id
      FROM (
        SELECT * FROM xf_post
        WHERE xf_post.message_state='visible'
        ORDER BY xf_post.post_date DESC
      )
      GROUP BY thread_id
    )
  ORDER BY post.post_date DESC
  LIMIT " 
$this->_getMaxValue($max) . "; 
... so aus der Erinnerung .. ich hab in meiner Webanwendung eine ähnliche Abfrage
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 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
Mitarbeiter für Query OS gesucht Kasenoru Sonstige 0 18.06.2011 00:34
[Erledigt] problem mit mysqli query fulltilt PHP Tipps 2010 10 24.09.2010 11:52
[Erledigt] Query Problem mit between bei Datum fulltilt PHP Tipps 2010 3 02.06.2010 12:43
Unabhängige "Auto-Increment Spalte" für ein ON DUPLICATE KEY query? juice122 Datenbanken 4 31.05.2010 20:59
MySQL Problem fkrauthan PHP-Fortgeschrittene 5 25.01.2008 18:18
MYSQL Query Variablen Übergabe Jay0815 PHP Tipps 2008 3 03.10.2007 19:48
NS Query Problem GSJLink Datenbanken 0 07.09.2007 18:04
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Mega Sql Query Problem Finkman Datenbanken 7 20.05.2006 12:17
Problem: mehrfaches mysql_fetch_array skho PHP Tipps 2006 5 09.03.2006 15:11
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
Query, was aus einer Tabelle mehrere Summen rausholt Datenbanken 3 14.09.2005 16:45
[Erledigt] Interessantes Problem PHP-Fortgeschrittene 48 15.12.2004 23:19
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] Query läuft nicht Datenbanken 6 13.08.2004 21:13


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