2011-01-30 1 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

wow Я пытался решить это сам с тех пор, как пару часов .. Я был очень расстроен .. спасибо вам очень много – leon

+0

удачи! –

 Смежные вопросы

  • Нет связанных вопросов^_^