交叉检查两张桌子

问题描述 投票:1回答:2

我的数据库中有两个表,一个包含员工的出勤,另一个包含员工的工资单。为了让一个员工得到报酬,他的名字应该存在于两个表上,我的问题是如何使用员工的id编写看起来在两个表中的程序,并找到列表名称......正在使用php和MySQL的

考勤表

id   name        
1    mark

2    jhon

工资表

id     name      salary
1      mark      20000$
2      jhon      3999$
php mysql
2个回答
1
投票

也许你可以使用JOIN。在这种情况下,INNER JOIN应该可以解决问题。但也有其他类型的联接。

Inner join

从表A和表B中选择满足连接条件的所有记录。

Left join

选择表A中的所有记录,以及表B中满足连接条件的记录(如果有的话)。

Right join

选择表B中的所有记录,以及表A中满足连接条件的记录(如果有的话)。

Full join

选择表A和表B中的所有记录,无论是否满足连接条件。

在这种情况下,您可以像这样使用INNER JOIN

SELECT attendance.name, payroll.salary FROM attendance INNER JOIN payroll ON attendance.name = payroll.name

这将选择名称和工资(如果存在)。

也许您应该将密钥名称更改为数据库中的密钥名称

为了记录,从http://www.sql-join.com/sql-join-types得到了图像


1
投票

您可以使用连接查询从这些表中获取数据。如果您不知道如何使用它,请查看以下链接SQL Join tutorial

© www.soinside.com 2019 - 2024. All rights reserved.