我有这张桌子
表"分配" - > 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作为作者,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;
我是新手查询,请帮我解决这个问题。 非常感谢你。
答案 0 :(得分:0)
谢谢大家,我在聚会上得到朋友的回答,
我的连接查询是好的,只需在两个表主文件中的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;