Sql champ dans clause where ambigu
wildchildforlife
Messages postés
74
Date d'inscription
Statut
Membre
Dernière intervention
-
blux Messages postés 27145 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27145 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour !
C'est simple je veux selectionner et afficher tout les champs "nom_table" parmis plusieurs tables voici ma requete :
$selection_recherche = mysql_query("SELECT * FROM films, jeux, series, music WHERE nom_table = '%$recherche%' ORDER BY id DESC") or die(mysql_error());
on me dit "Champ: 'nom_table' dans where clause est ambigu"
j'ai lu que ambgu vx dir que ma sgdb ne c pas quoi prendre exactement puisque plusieurs tables comportent le meme champ, mais moi je veux qu'elle les prennent TOUTES ( celle qui comportent ce que j'ai spécifié dans le WHERE ) xD comment faire ? :s !
C'est simple je veux selectionner et afficher tout les champs "nom_table" parmis plusieurs tables voici ma requete :
$selection_recherche = mysql_query("SELECT * FROM films, jeux, series, music WHERE nom_table = '%$recherche%' ORDER BY id DESC") or die(mysql_error());
on me dit "Champ: 'nom_table' dans where clause est ambigu"
j'ai lu que ambgu vx dir que ma sgdb ne c pas quoi prendre exactement puisque plusieurs tables comportent le meme champ, mais moi je veux qu'elle les prennent TOUTES ( celle qui comportent ce que j'ai spécifié dans le WHERE ) xD comment faire ? :s !
A voir également:
- Sql champ dans clause where ambigu
- Where is it - Télécharger - Gestion de fichiers
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Requête sql pix - Forum Python
1 réponse
Salut,
ta requête est mal conçue.
Tu veux selectionner tous les champs de toutes les tables, ce n'est pas possible sous SQL. Quand on met plusieurs tables, c'est qu'on doit faire une jointure.
Si tu as une colonne nom_table, tu dois préciser à quelle table elle est rattachée.
Si tu veux vraiment toutes les colonnes appelées nom_table tu dois faire un truc de ce genre :
SELECT nom_table from films
UNION
SELECT nom_table from jeux
UNION
SELECT nom_table from series
UNION
SELECT nom_table from series
ta requête est mal conçue.
Tu veux selectionner tous les champs de toutes les tables, ce n'est pas possible sous SQL. Quand on met plusieurs tables, c'est qu'on doit faire une jointure.
Si tu as une colonne nom_table, tu dois préciser à quelle table elle est rattachée.
Si tu veux vraiment toutes les colonnes appelées nom_table tu dois faire un truc de ce genre :
SELECT nom_table from films
UNION
SELECT nom_table from jeux
UNION
SELECT nom_table from series
UNION
SELECT nom_table from series