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

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
 

nagash

Guest
сам разобрался... если возникнет похожий вопрос ответ -


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."'
 

nagash

Guest
да поддерживает...
ссылку не помню у меня скачаный мануал но в мануале это раздел 6.3.1.4 функции управления потоком
можно ещё вот так сделать
SELECT IF(shopping_processors.id = shopping_usersettings.processor, shopping_processors.form, 'nope') AS 'form'

так компактнее
 

clevel

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