【问题标题】:Join two table and show different column on mysql加入两个表并在mysql上显示不同的列
【发布时间】:2014-11-17 02:37:45
【问题描述】:

我有这张桌子

table "assign" --> npwp,kpp,cab,nip_ar,klu --> 有 31.023 个数据

table "masterfile" --> npwp,kpp,cab,jenis,nama,kota --> 有 33.631 个数据

我想加入这两个表,这样我就可以得到,npwp,kpp,cab,jenis,nama,kota,nip_ar,klu

当我使用 LEFT JOIN 时,它处理了很长时间。但是当我使用 UNION ALL 时,它并不能如我所愿。

这些我的 UNION ALL 查询:

SELECT npwp,kpp,NULL as author,cab,nip_ar,klu FROM assign GROUP BY npwp,kpp,cab UNION ALL SELECT npwp,kpp,cab,jenis,nama,kota FROM masterfile GROUP BY npwp,kpp,cab;

我只是得到列 npwp,kpp,author,cab,nip_ar,klu。但列 jenis,nama,kota 未显示。

这些是我的 LEFT JOIN 查询:

SELECT masterfile.npwp,masterfile.kpp,masterfile.cab,masterfile.name,masterfile.address,assign.nip_ar,assign.klu FROM masterfile LEFT JOIN assign ON assign.npwp=masterfile.npwp AND assign.kpp=masterfile .kpp AND assign.cab=masterfile.cab;

我是新手,请帮我解决这个问题。 非常感谢。

【问题讨论】:

  • 您的OUTER JOIN 没有发现任何问题——您在连接列上有索引吗?使用UNION 与使用JOINs 完全不同,取决于您想要的结果。
  • 是的,你是对的 sgeddes,只是必须在上面添加索引,非常感谢你的建议

标签: mysql sql join union


【解决方案1】:

谢谢大家,我在聚会聊天中得到朋友的答复,

我的连接查询很好,只需在两个表主文件的 NPWP、KPP、CAB 列中添加 INDEX 并分配,以便查询可以更快地处理。

SELECT masterfile.npwp,masterfile.kpp,masterfile.cab,masterfile.name,masterfile.address,assign.nip_ar,assign.klu FROM masterfile LEFT JOIN assign ON assign.npwp=masterfile.npwp AND assign.kpp=masterfile .kpp AND assign.cab=masterfile.cab;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    相关资源
    最近更新 更多