2011-01-30 53 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)" 

当我搜索google.com时,如果有一个或任何表没有收到与google.com相关的任何数据,则整个结果将返回空白。但是如果所有的表都有关于google.com的数据,那么它将毫无问题地返回。我该如何解决这个问题?即使只有一张表有数据,我也想得到结果。从多个表中选择返回空结果

回答

1

您需要使用LEFT OUTER JOIN

事情是这样的:

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

哇我试图自己解决它,因为几个小时..我真的很沮丧..谢谢你很 – leon 2011-01-30 12:48:34

相关问题