Problem mit Query nach Serverupdate

fanste

Erfahrenes Mitglied
Hi,

Heute wurde auf dem Server ein Datenbankupdate von Version 4 auf Version 5 gemacht. Auf dem 4er lief folgender Query ohne Probleme

SQL:
SELECT
      `bt`.`id` as t_id,
      `bt`.`starter_name` as t_sn,
      `bt`.`starter_id` as t_sid,
      `bt`.`name` as t_t,
      `bt`.`klicks` as t_v,
      `bt`.`path` as t_p,
      `bp`.`author_name` as p_an,
      `bp`.`author_id` as p_aid,
      `bp`.`time` as p_t,
      `bc`.`id` as bc_id,
      `bc`.`name` as bc_n,
      `bb`.`name` as bb_n
      #COUNT(`bp`.`id`) as p_count #das muss man noch ändern... später
     FROM
      `board_posts` as bp,
      `board_columns` as bc,
      `board_boards` as bb,
      `board_topics` as bt
     INNER JOIN
      `board_posts` as bp2
     ON
      (
       `bp2`.`path` = CONCAT(`bt`.`path`, '-', `bt`.`id`)
       AND `bp`.`time` < `bp2`.`time`
       )
     
     WHERE
      `bc`.`id` = '".$id."'
      AND `bb`.`id` = `bc`.`parent`
      AND `bt`.`path` = CONCAT(`bc`.`parent`, '-', `bc`.`id`)
      AND `bp`.`path` = CONCAT(`bt`.`path`, '-', `bt`.`id`)
      AND `bp2`.`time` IS NULL
     ORDER BY
      `p_t` DESC

Auf dem 5er gibt er den Fehler aus, dass er `bp`.`time` im JOIN nicht finden kann, also dass die Spalte/Tabelle nicht existiert. Daher gehe ich mal davon aus, dass ich das ganze komplett auf "* JOIN"-Basis machen muss, sprich, ich muss alle Tabellen über JOINS Verknüpfen.(Ist wahrscheinlich auch "unsauber" dieser Query)

Ich komm aber irgendwie nicht dahinter, in welcher Reihenfolge, damit ich auch zum passenden Ergebnis komme. Vielleicht könnt ihr mir da helfen.

Achja: Was bisher noch nicht geklappt hat, war das Zählen der IDs (auskommentierte Zeile). Es wurde glaube ich immer ein GROUP BY verlangt, bin mir da aber nicht mehr sicher. Vielleicht bekommt ihr auch das mit eingebaut :)

Danke schonmal im Voraus

Gruß fanste

EDIT:

Dies war mein letzter Versuch. Er meckert aber an der Zeile 23 rum.
#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 'ON ( `bp` . `time` < `bp2` . `time` AND `bp` . `path` = CONCAT( `bt` . `path` ,' at line 1
SQL:
SELECT
						`bt`.`id` as t_id,
						`bt`.`starter_name` as t_sn,
						`bt`.`starter_id` as t_sid,
						`bt`.`name` as t_t,
						`bt`.`klicks` as t_v,
						`bt`.`path` as t_p,
						`bp`.`author_name` as p_an,
						`bp`.`author_id` as p_aid,
						`bp`.`time` as p_t,
						#`bp`.`title` as p_n,
						`bc`.`id` as bc_id,
						`bc`.`name` as bc_n,
						`bb`.`name` as bb_n
						#COUNT(`bp`.`id`) as p_count #das muss man noch ändern... später
						
					FROM 
						`board_columns` as bc
					INNER JOIN 
					( 
						`board_topics` as bt INNER JOIN ( 
														 `board_posts` as bp2 INNER JOIN (
																							`board_posts` as bp ON (`bp`.`time` < `bp2`.`time`
																												   AND `bp`.`path` = CONCAT(`bt`.`path`, '-', `bt`.`id`))
																						  )
																						  ON `bp2`.`path` = CONCAT(`bt`.`path`, '-', `bt`.`id`)
														)
														ON `bt`.`path` = CONCAT(`bc`.`parent`, '-', `bc`.`id`)
						`board_boards` as bb ON `bb`.`id` = `bc`.`parent`
					)
					
					WHERE
						`bc`.`id` = '".$id."'
						#AND `bp2`.`time` IS NULL
					ORDER BY
						`p_t` DESC
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück