Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用mysql设置子查询结果的默认值_Mysql_Database_Default - Fatal编程技术网

如何使用mysql设置子查询结果的默认值

如何使用mysql设置子查询结果的默认值,mysql,database,default,Mysql,Database,Default,如何使用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.`res

如何使用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或帮助得到肯定的感谢


您应该将子查询移动到联接。但我无法理解您试图用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'
解决方案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' 

你的问题已经解决了,或者我在你的指导下找到了我的答案,谢谢你分享你的经验,抱歉,但我不明白你想说什么。它对你有用吗?好吧,你只能在选择的上下文中使用默认值-<代码>从tbl中选择默认值(字段)或
更新tbl SET field=DEFAULT(字段)
查看我的答案实际上这是我想说的我明白了你想说什么关于DEFAULT为什么使用子查询而不是左连接?这是没有道理的。我只是检查一下这个逻辑是否有效,我真的非常感谢你。我建议不要在这种情况下使用子查询,因为左连接将以更低的开销生成相同的结果。@nnichols thanx谢谢您的建议,我已经在我的项目上实现了您的查询!谢谢