probleme de jointure - PHP - Programmation
Marsh Posté le 16-06-2004 à 18:38:54
Comprend pas tu veux que ta requete ait quel tete au final tu veux faire quoi ?
Tu veux faire une jointure entre deux table ou une requette dans une requette?
Marsh Posté le 16-06-2004 à 18:56:22
salut,
en fait je veux garder ma première requete (celle qui est écrite)
et dedans je veux rajouter la deuxième qui est select * from table2
faire un truc du genre :
Code :
|
mais bon ça c'est faux. je veux une jointure entre mes 2 tables mais comme c'est une requete compliqué et que j'y connais pas grand chose en jointures j'y arrive pas !
merci beaucoup d'avance
@+
Marsh Posté le 16-06-2004 à 19:11:14
quel intérêt ?
soit tu fais 2 requêtes séparées, soit tu fais une jointure qui va bien sur des champs qui sont concus a cet effet
Marsh Posté le 16-06-2004 à 19:24:26
bah en fait dans ma table1 je n'ai pas toutes les infos necessaires donc je dois aller les chercher dans la table2, la table2 sert juste pour compléter la table1, ce n'est pas sur elle que je veux faire la requete.
et donc c'est la que ça coince je ne vois pas comment faire !
j'espère que vous avez compris !
merci beaucoup
Marsh Posté le 16-06-2004 à 19:28:45
ben si t'as des infos dans la table 2 qui complètent ta table 1, il faut faire la jointure entre les champs dans table 1 et table 2 qui servent de clés, i.e. qui permettent de relier les 2 tables ...
Marsh Posté le 16-06-2004 à 20:43:49
Qu'elle est le point commun entre les deux table et peux tu me montrer tes deux requette je pourrais te faire une requette avec cela
Marsh Posté le 16-06-2004 à 22:46:35
alors voici la première requete :
Code :
|
et la deuxième :
Code :
|
les deux tables en ont commun le bla1.
merci beaucoup !
Marsh Posté le 16-06-2004 à 22:54:51
bah pour rester dans le vague tu prends pour la table2 par exemple
champ1
champ2
champ3
j'adapterai ensuite
et la table1
champ1 > corrélation avec l'autre champ1
bla2
bla3
voila j'espère que c ça !
merci encore
Marsh Posté le 16-06-2004 à 23:47:46
qqn a un article qui explique comment fonctionne un sgdb du cote bas niveau pour traite une requete ?
Marsh Posté le 17-06-2004 à 00:04:01
worldcinemag a écrit : bah pour rester dans le vague tu prends pour la table2 par exemple |
Code :
|
Marsh Posté le 18-06-2004 à 14:09:01
salut,
désolé pour le retard
en fait j'arrive pas à faire marcher ma requete il me met que c'est ambigu pour orber by, enfin voici la requete :
Code :
|
et donc il me sort ça :
Column: 'id_fiche' in group statement is ambiguous
j'ai essayé de faire group by top_fiches.id_fiche mais ça fait planter le serveur, j'ai aussi essayé de rajouter des parenthèses mais ça change quedal !
voila si t'as la solution merci beaucoup !
Marsh Posté le 18-06-2004 à 14:48:07
j'ai fait aussi le group by top_fiches.id_fiche mais le serveur plante ! donc c pas ça !
merci quand meme
Marsh Posté le 18-06-2004 à 15:17:52
postes nous les 2 tables avec leur champs respectifs
Marsh Posté le 18-06-2004 à 15:42:39
alors la table content_film contient en gros :
id_fiche
film
film_vo
histoire
... vais pas tous les faire, c trop long
et la table top_fiches
id_fiche
film
date_max
voila
encore merci !
Marsh Posté le 18-06-2004 à 16:16:18
en fait c'est ton order by qui ne veut rien dire .....
essayes :
SELECT content_film.*, top_fiches.*, count(top_fiches.id_fiche) as total
FROM top_fiches
LEFT OUTER JOIN content_film ON top_fiches.id_fiche=content_film.id_fiche
where date_max >= '$date_lim'
group by top_fiches.id_fiche
pour voir ce que ca donne
Marsh Posté le 18-06-2004 à 16:20:01
nan ça marche pas non plus, le serveur se met à ramer à mort !
ça se complique ! :-)
Marsh Posté le 18-06-2004 à 16:23:19
le group by aussi ne veut rien dire ... tu veut afficher toutes les infos d'une table (content_film.*, etc.) en groupant les données !
Le mieux ce serait que tu expliques en français le résultat que tu veux avoir, ce sera plus simple.
Marsh Posté le 18-06-2004 à 16:23:42
très étonnant, ca n'a rien de compliqué .... c'est une requête de base .....
EXPLAIN SELECT content_film.*, top_fiches.*, count(top_fiches.id_fiche) as total
FROM top_fiches
LEFT OUTER JOIN content_film ON top_fiches.id_fiche=content_film.id_fiche
where date_max >= '$date_lim'
group by top_fiches.id_fiche
Marsh Posté le 16-06-2004 à 18:17:47
Bonjour,
j'ai une requete comme ça :
cette requete marche très bien mais là je veux en plus selectionner une autre table dans la requete
je veux ajouter
select * from table2 dans la requete du dessus.
j'ai cherché dans la doc les jointures mais j'ai pas franchement compris le principe et j'ai fais quelques essais mais à chaque fois ça foire !
est ce que quelqu'un sait comment faire ça ?
merci d'avance
@+