Sql champ dans clause where ambigu

Fermé
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 - 8 avril 2010 à 02:41
blux Messages postés 26545 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 décembre 2024 - 8 avril 2010 à 09:56
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 !

1 réponse

blux Messages postés 26545 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 décembre 2024 3 318
8 avril 2010 à 09:56
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
0