【发布时间】: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,只是必须在上面添加索引,非常感谢你的建议