爱的瀚海天空 2020-06-18 19:16 采纳率: 0%
浏览 324

跨库跨表关联查询两个表的对应字段的不同数据

目前执行后输出的不一样的结果中不知道是来自于哪个表,能否标记出来自哪个表
,而且输出的结果是把不一样的结果那个值的所在行全部输出,能不能只输出具体的那个值呢?shell脚本如下

#!/bin/bash
HOSTNAME="127.0.0.1"          #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD="root"
#DBNAME="data" 
#数据库名称
TABLENAME="data.group_day" 
TABLENAME1="resouorce.group_day1" 


select_sql="select b.adgroup_id, b.campaign_id,
a.store_id,
  a.campaign_id,
  a.campaign_name,
  a.adgroup_id,
  a.adgroup_name,
  a.brand_id,
  a.sku_id,
  a.effect_days,
  a.source,
  a.cost, 
  a.favorite_item_quantity,
  a.indirect_order_quantity,
  a.indirect_order_value,
  a.direct_order_quantity,
  a.favorite_shop_quantity,
  a.total_cart_quantity,
  a.direct_order_value,
  a.direct_cart_total,
  a.ctr,
  a.favtotal,
  a.alipay_inshop_num,
  a.alipay_inshop_amt,
  a.dw_etl_date,
  a.dw_batch_id,
  a.rowkey,
  a.created_time,
  a.updated_time,
  a.ecpm,
    a.data_source,
    a.ad_date,
    a.indirect_cart_total,
       a.search_type,
       a.ecpc,
       a.roi,
       a.impressions,
       a.clicks,
       a.cvr,
       a.category_id,
a.nick
from data.adgroup_day as a,
 resouorce.group_day1 as b
where (a.adgroup_id = b.adgroup_id and a.campaign_id = b.campaign_id)
  and (a.store_id != b.store_id or a.campaign_name != b.campaign_name or
       a.indirect_cart_total != b.indirect_cart_total or a.search_type != b.search_type or a.ecpc != b.ecpc or
       a.roi != b.roi or a.impressions != b.impressions or a.clicks != b.clicks or a.cvr != b.cvr or
       a.category_id != b.category_id or a.nick != b.nick or a.ecpm != b.ecpm or a.data_source != b.data_source or a.sku_id != b.sku_id  or a.adgroup_name != b.adgroup_name or a.brand_id != b.brand_id or
       a.effect_days != b.effect_days or a.source != b.source or a.cost != b.cost or a.favorite_item_quantity != b.favorite_item_quantity or
       a.indirect_order_quantity != b.indirect_order_quantity or a.indirect_order_value != b.indirect_order_value or a.direct_order_quantity != b.direct_order_quantity or a.direct_cart_total != b.direct_cart_total or a.ctr != b.ctr or
       a.favtotal != b.favtotal or a.alipay_inshop_num != b.alipay_inshop_num or a.alipay_inshop_amt != b.alipay_inshop_amt or a.dw_etl_date != b.dw_etl_date or a.rowkey != b.rowkey or a.created_time != b.created_time or a.updated_time != b.updated_time or a.ad_date != b.ad_date ) LIMIT 110000, 1000;"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} -e"${select_sql}"   | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > apps.csv
echo '程序已执行'
current_time=$(date  "+%Y%m%d-%H%M%S")
echo ${current_time}
  • 写回答

1条回答 默认 最新

  • 德玛洗牙 2020-06-19 16:01
    关注

    你这是两个表的数据比较,何来不一样的结果是来自哪个表的说法呢,你这样的写法数据量一大估计就难受了,要想知道是那个字段值不一样,可以写一样函数去将两个表对应字段一一比较就可以了吧

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题