Le message d'erreur est clair pourtant, euh soit dit en passant pourquoi pas simplement faire 2 requetes ?
Je ne peux pas faire deux requetes car je dois avoir un seul output, une seule boucle while.
SELECT *
FROM
(SELECT $CfgTableMain.gallery_id as MonID, *
FROM $CfgTableMain
LEFT JOIN $CfgTablePhotos
ON $CfgTableMain.gallery_id = $CfgTablePhotos.gallery_id) as MaTable
LEFT JOIN $CfgTableVideos
ON MaTable.MonID = $CfgTableVideos.gallery_id
Je viens de tester ce code mais une erreur survient me disant : Duplicate column name 'gallery_id'
En réponse à vos questions sur la structure de mes tables,
veuillez suivre le lien suivant :
http://www.150.be/temp/
Le problème étant que si la structure de mes tables n'est pas bonne, je ne vois pas comment faire pour réaliser mon projet.
Pour moi ma structure est bonne et rentre dans la logique de conception d'un tel projet (gallerie photo video)
Au final, le problème reste entier:
1. la structure de table que j'ai choisi est elle bonne ?
2. Si oui, comment lier les id des tables photos ET/OU videos à la table principale
Le truc qui aurait pu marcher et qui pourrait vous donner des idées pour m'aider : L'utilisation de OR
Je pense que l'utilisation de OR dans le contexte d'une jointure aurait été parfait ( car à la base c'est AND)
// $max = LIMIT ... (pagination)
// table principale : $CfgTableMain | table2 : $CfgTablePhotos | table3 : $CfgTableVideos
$req_main="SELECT * FROM $CfgTableMain
LEFT JOIN $CfgTablePhotos ON ($CfgTableMain.gallery_id = $CfgTablePhotos.gallery_id)
OR
LEFT JOIN $CfgTableVideos ON ($CfgTableMain.gallery_id = $CfgTableVideos.gallery_id)
GROUP BY $CfgTableMain.gallery_id ORDER BY $CfgTableMain.gallery_date DESC $max";
Franchement, je ne pensais pas qu'un simple problème (en réalité) pouvait me donner tant de fil a retordre.
Je suis bloqué là ... je ne sais pas quoi faire, ni comment
Une aide est franchement la bienvenue,
Merci pour tout,
Raph
[quote="fab"]Le message d'erreur est clair pourtant, euh soit dit en passant pourquoi pas simplement faire 2 requetes ?[/quote]
Je ne peux pas faire deux requetes car je dois avoir un seul output, une seule boucle while.
[quote="Kran"]
[sql]SELECT *
FROM
(SELECT $CfgTableMain.gallery_id as MonID, *
FROM $CfgTableMain
LEFT JOIN $CfgTablePhotos
ON $CfgTableMain.gallery_id = $CfgTablePhotos.gallery_id) as MaTable
LEFT JOIN $CfgTableVideos
ON MaTable.MonID = $CfgTableVideos.gallery_id[/sql]
[/quote]
Je viens de tester ce code mais une erreur survient me disant : Duplicate column name 'gallery_id'
En réponse à vos questions sur la structure de mes tables,
[b]veuillez suivre le lien suivant[/b] : http://www.150.be/temp/
Le problème étant que si la structure de mes tables n'est pas bonne, je ne vois pas comment faire pour réaliser mon projet.
Pour moi ma structure est bonne et rentre dans la logique de conception d'un tel projet (gallerie photo video)
Au final, le problème reste entier:
1. la structure de table que j'ai choisi est elle bonne ?
2. Si oui, comment lier les id des tables photos ET/OU videos à la table principale
Le truc qui aurait pu marcher et qui pourrait vous donner des idées pour m'aider : L'utilisation de OR
Je pense que l'utilisation de OR dans le contexte d'une jointure aurait été parfait ( car à la base c'est AND)
[php]// $max = LIMIT ... (pagination)
// table principale : $CfgTableMain | table2 : $CfgTablePhotos | table3 : $CfgTableVideos
$req_main="SELECT * FROM $CfgTableMain
LEFT JOIN $CfgTablePhotos ON ($CfgTableMain.gallery_id = $CfgTablePhotos.gallery_id)
OR
LEFT JOIN $CfgTableVideos ON ($CfgTableMain.gallery_id = $CfgTableVideos.gallery_id)
GROUP BY $CfgTableMain.gallery_id ORDER BY $CfgTableMain.gallery_date DESC $max";[/php]
Franchement, je ne pensais pas qu'un simple problème (en réalité) pouvait me donner tant de fil a retordre.
Je suis bloqué là ... je ne sais pas quoi faire, ni comment
Une aide est franchement la bienvenue,
Merci pour tout,
Raph