Выбор из нескольких таблиц возвращает пустой результат - PullRequest
2 голосов
/ 30 января 2011
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, то она возвращается без проблем.как я могу решить эту проблему?Я хочу получить результат, даже если только одна таблица имеет данные ..

Ответы [ 2 ]

1 голос
/ 30 января 2011

Вам нужно использовать 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 голосов
/ 30 января 2011

Вам нужно внешнее соединение.Взгляните на различные варианты на http://en.wikipedia.org/wiki/Join_(SQL)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...