Как установить значение по умолчанию в результате SubQuery, используя mysql - PullRequest
3 голосов
/ 29 марта 2012

Как установить по умолчанию VALUE в результате подзапроса с использованием mysql

SELECT      
    p.`id`, p.`name`, p.`class_name`, cpd.`status_team`,
    cpd.`home`, cpd.`guest`, cpd.`mvp`, cpd.`oscar`,
    cpd.`wam`, cpd.`status`, cpd.`added_date`,
    (SELECT result FROM result_cards WHERE `id` = cpd.`result`) AS DEFAULT(`result`)
FROM `cron_players_data` cpd
INNER JOIN `players` p ON cpd.`player_id` = p.id
WHERE cpd.`added_date` = '2012-03-29' AND cpd.team_id = '15'

когда я удаляю это DEFAULT () Запрос будет выполняться нормально. На самом деле я хочу по умолчанию результат значение равно 0 или помощь определенно приветствуется

enter image description here

Ответы [ 2 ]

5 голосов
/ 29 марта 2012

Раствор IFNULL

SELECT      
p.`id`,p.`name`,p.`class_name`,cpd.`status_team`,cpd.`home`,cpd.`guest`,cpd.`mvp`,
cpd.`oscar`,cpd.`wam`,cpd.`status`,cpd.`added_date` ,
IFNULL((SELECT result FROM result_cards WHERE `id` = cpd.`result`),0) AS `result` 
FROM `cron_players_data` cpd INNER JOIN `players` p ON cpd.`player_id` = p.id
WHERE cpd.`added_date` = '2012-03-29' AND cpd.team_id = '15' 
1 голос
/ 29 марта 2012

Вы должны переместить подзапрос в объединение.Но я не могу понять, что вы пытаетесь сделать с DEFAULT ().Вам нужно будет объяснить, чего вы пытаетесь достичь.

SELECT      
    p.`id`, p.`name`, p.`class_name`, cpd.`status_team`,
    cpd.`home`, cpd.`guest`, cpd.`mvp`, cpd.`oscar`,
    cpd.`wam`, cpd.`status`, cpd.`added_date`,
    IFNULL(rc.`result`, 0) AS `result`
FROM `cron_players_data` cpd
INNER JOIN `players` p
    ON cpd.`player_id` = p.id
LEFT JOIN result_cards rc
    ON cpd.`result` = rc.id
WHERE cpd.`added_date` = '2012-03-29'
AND cpd.team_id = '15'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...