Comment éviter le produit Cartésien dans une requête de JOINTURE INTERNE?

J'ai 6 tables, appelons-les a,b,c,d,e,f. Maintenant, je veux à la recherche de toutes les colonnes (à l'exception de la colonne d'ID) de toutes les tables pour un certain mot, disons 'Joe'. Ce que j'ai fait, j'ai fait des JOINTURES internes sur toutes les tables, puis utilisé COMME pour rechercher les colonnes.

INNER JOIN
...
ON
INNER JOIN
...
ON.......etc.
WHERE a.firstname 
~* 'Joe' 
OR a.lastname 
~* 'Joe' 
OR b.favorite_food 
~* 'Joe'
OR c.job
~* 'Joe'.......etc.

Les résultats sont corrects, je reçois toutes les colonnes que je cherchais. Mais je reçois aussi une sorte de produit cartésien, je reçois 2 ou plus de lignes avec presque les mêmes résultats.

Comment puis-je éviter cela? Je veux donc avoir chaque ligne qu'une seule fois, car les résultats doivent apparaître sur une recherche sur le web.

Mise à JOUR

J'ai d'abord essayé de comprendre si la SELECT DISTINCT chose serait de travailler à l'aide de cette déclaration: pastie.org/970959 Mais il me donne toujours un produit cartésien. Quel est le problème avec cela?

Merci de préciser ce que db utilisez-vous.

OriginalL'auteur flhe | 2010-05-20