写一个sql:表1正确取表1的数据,表1不正确取表2的数据

1、有两个表,表1取自数据库,在前台展示表1的数据(这个表每天自动更新最新一版的数据)。

2、然后表1设置填报功能,可以修改表1的数据并提交,因为表1的数据每天有更新,所以肯定不能提交到表1中,就需要提交到表2修改表中(这是我目前的思路)

3、问题就是:前台需要展示修改后的数据,如果表1正确不需要修改就展示表1的数据,如果表1不正确那么就需要展示修改后表2的数据(也就意味着同样一个id,当表1正确的时候,表2没有数据;当表1不正确时,修改后提交到表2表2有数据),请问这个sql怎么写

SQL mmc0112 发布于 2023-7-25 10:15
1min目标场景问卷 立即参与
回答问题
悬赏:5 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
机智的ywjLv5初级互助
发布于2023-7-25 10:20

根据参数判断取哪个表,格式参考image.png

最佳回答
0
CD20160914Lv8专家互助
发布于2023-7-25 10:52

你直接全部提交到表2不就行了。如果数据正确,用户不会修改,它会进入表2,如果数据不正确,用户修改了,也是存入表2,那么最终展示表2的数据不就行了?

  • mmc0112 mmc0112(提问者) 但是表1的数据天天更新呀 全存到表2 表1转天更新了 表2已存的数据不就是过期了吗
    2023-07-25 10:59 
  • CD20160914 CD20160914 回复 mmc0112(提问者) 你写入表2的数据。也是和表1在一个服务器的一个数据库吧?如果是的话就好写语句。
    2023-07-25 11:00 
最佳回答
0
stmxlzyLv4见习互助
发布于2023-7-25 11:16(编辑于 2023-7-25 11:24)

按表2有数据即查询表2 ,否则查表1;

SELECT COALESCE

( b.num, a.num ) 

FROM

( SELECT 1 id, 1 num ) a

LEFT JOIN ( SELECT 1 id, 2 num ) b ON a.id= b.id

或用case when判断 数据是否正确 

SELECT 

case 

when a.num =1 then a.num 

else b.num 

end num 

FROM

( SELECT 1 id, 1 num ) a

LEFT JOIN ( SELECT 1 id, 2 num ) b ON a.id= b.id

  • 3关注人数
  • 268浏览人数
  • 最后回答于:2023-7-25 11:24
    请选择关闭问题的原因
    确定 取消
    返回顶部