mysql - 连接两个表并在mysql上显示不同的列

标签 mysql sql join union

我有这张 table

表“分配” --> npwp,kpp,cab,nip_ar,klu --> 有 31.023 条数据

表“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;

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

最佳答案

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

我的连接查询很好,只需在两个表主文件的 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;

关于mysql - 连接两个表并在mysql上显示不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25985776/

相关文章:

mysql - MySql 中连接 4 个表时出现重复数据

mysql - MySQL中添加约束语法的区别?

php - 带有插入和更新的 MySQL 案例

mysql - SQL SELECT - 仅当存在另一条记录时才选择

sql - Oracle sql query union操作?

mysql - 连接查询无法对表中的所有元素正常工作

java - Eclipse Java 中的错误 : java. lang.ClassNotFoundException : com. mysql.jdbc.driver

mysql - 如何将多行数据分组到同一行?

mysql - 需要使用两个不同的where子句返回两组数据

mysql - 使用连接在 MySQL 中计算 SUM