2011-01-30 4 views
2
SELECT * 
    FROM traffic,alexat,bindx,blink 
WHERE traffic.web = alexat.web 
    AND traffic.web = bindx.web 
    AND traffic.web = blink.web 
    AND traffic.web="mysql_real_escape_string($web)" 

Lorsque je fais une recherche sur google.com et que l'un ou l'autre des tableaux ne contient aucune donnée liée à google.com, le résultat complet est vide. mais si toutes les tables contiennent des données sur google.com, elles reviennent sans problème. comment puis-je résoudre ce problème ?? Je veux obtenir le résultat même si une seule table a des données.Sélectionner parmi plusieurs tables renvoie un résultat vide

Répondre

1

Vous devez utiliser LEFT OUTER JOIN.

Quelque chose comme ceci:

SELECT * 
    FROM traffic LEFT OUTER JOIN alexat USING (web) 
    LEFT OUTER JOIN bindx USING (web) 
    LEFT OUTER JOIN blink USING (web) 
WHERE traffic.web="mysql_real_escape_string($web)" 
+0

wow j'essayais de le résoudre moi-même depuis quelques heures..J'étais vraiment frustré..merci beaucoup – leon

+0

bonne chance leon! –

Questions connexes