запрос в три базы и когда хоть от одной нет результата то вообще результата нет

  • Автор темы Автор темы nagash
  • Дата начала Дата начала

nagash

Guest
запрос в три базы и когда хоть от одной нет результата то вообще результата нет

помогите пожалуйста...
делаю вот такой запрос

SELECT
shopping_forms.thankurl,
shopping_processors.form,
shopping_usersettings.merchantid,
shopping_usersettings.processor,
shopping_usersettings.paypalemail,
shopping_usersettings.paypayaccept
FROM
shopping_processors,
shopping_usersettings,
shopping_forms
WHERE
shopping_forms.owner = '".$ownerid."'
AND shopping_forms.formtype = 'sell'
AND shopping_usersettings.owner = '".$ownerid."'
AND shopping_processors.id = shopping_usersettings.processor


но вся загвозда в том что если допустим вот в этом равенстве
shopping_processors.id = shopping_usersettings.processor
идёт что не существует такого процессора то он вообще ничего не возвращает...
можно как нибудь построить условие что если нет этого процессора то он не будет мешать другим запросам выполниться... и просто не достанет ничего из shopping_processors.form
 
сам разобрался... если возникнет похожий вопрос ответ -


SELECT CASE WHEN shopping_processors.id = shopping_usersettings.processor THEN shopping_processors.form ELSE 'nope' END AS 'form', shopping_forms.thankurl, shopping_usersettings.merchantid, shopping_usersettings.processor, shopping_usersettings.paypalemail, shopping_usersettings.paypayaccept FROM shopping_processors,shopping_usersettings,shopping_forms WHERE shopping_forms.owner = '".$ownerid."' AND shopping_forms.formtype = 'sell' AND shopping_usersettings.owner = '".$ownerid."'
 
да поддерживает...
ссылку не помню у меня скачаный мануал но в мануале это раздел 6.3.1.4 функции управления потоком
можно ещё вот так сделать
SELECT IF(shopping_processors.id = shopping_usersettings.processor, shopping_processors.form, 'nope') AS 'form'

так компактнее
 
1.не базы, а таблицы
2.посмотри в сторону left Join. Естественно, при inner join может ничего не возвращать
 
Сверху