Mysql 联接两个查询表
我如何连接这两个表?我猜是左连接还是右连接,但我不能确定语法 来自同一个表的两个查询生成了两个表: 表1。获取ReservationMAC和ReservationIP列中具有相同项的所有项: 结果:Mysql 联接两个查询表,mysql,sql-server,join,Mysql,Sql Server,Join,我如何连接这两个表?我猜是左连接还是右连接,但我不能确定语法 来自同一个表的两个查询生成了两个表: 表1。获取ReservationMAC和ReservationIP列中具有相同项的所有项: 结果: Server network ReservationIP ReservationMAC ReservationNAme cnt S1 10.16.175.0 10.16.175.203 0 ups-mume-042a 2 S2 10.64.160.0
Server network ReservationIP ReservationMAC ReservationNAme cnt
S1 10.16.175.0 10.16.175.203 0 ups-mume-042a 2
S2 10.64.160.0 10.64.177.61 0 pq2331 2
表2。仅在ReservationMAC列中获取具有相同条目的所有条目
我需要重新连接这两个,最终结果应该是一个
ReservationMAC列匹配,但ReservationIP列不匹配。我不关心其他列,但我需要它在结果中。
结果:
Server network ReservationIP ReservationMAC ReservationNAme cnt
S1 10.16.175.0 10.16.175.203 0 ups-mume-042a 2
S2 10.64.160.0 10.64.177.61 0 pq2331 2
您只需要将查询包装在括号中,并为它们提供一个别名以加入
select q1.server, q1.network, q1.reservationip, q1.reservationmac, q1.reservationname, q1.cnt
from
(your first query) q1
INNER JOIN
(your second query) q2
ON q1.reservationmac = q2.reservationmac and q1.reservationip <> q2.reservationip
选择q1.server、q1.network、q1.reservationip、q1.reservationmac、q1.reservationname、q1.cnt
从…起
(您的第一个问题)q1
内连接
(您的第二个问题)q2
在q1.reservationmac=q2.reservationmac和q1.reservationip q2.reservationip上
作为替代方案,您可以从两个查询中创建视图,以便使查询更易于管理。hmm似乎不正确。内部联接将在两个表中产生相似的值,对吗?不。它只是不包括不符合条件的行。在这种情况下,它连接到等效的
reservationmac
,以及不同的reservationip
。您不必在等式上进行连接,您也可以在不等式或任何其他布尔值上进行有效连接comparison@lulala查看查询运行的演示。正如您所期望的那样,它给出了四个结果,因为第一个查询中有两行具有相同的mac,第二个查询中有两行具有不同的IP。
Result:
Server network ReservationIP ReservationMAC ReservationNAme cnt
S1 10.16.175.0 10.16.175.203 0 ups-mume-042a 2
S2 10.64.160.0 10.64.177.61 0 pq2331 2
S3 10.34.57.0 10.34.57.10 0 vhpa101 2
S4 10.34.57.0 10.34.57.10 0 vhvpa101 2
S1 10.206.0.0 10.206.3.22 0000681569af ac-gpo069 2
S2 10.206.0.0 10.206.3.22 0000681569af ac-gpo069 2
S3 10.232.8.0 10.232.11.51 6.82E+06 ac-gpob14 2
S4 10.232.8.0 10.232.11.51 6.82E+06 ac-gpob14 2
Server network ReservationIP ReservationMAC ReservationNAme cnt
S1 10.16.175.0 10.16.175.203 0 ups-mume-042a 2
S2 10.64.160.0 10.64.177.61 0 pq2331 2
select q1.server, q1.network, q1.reservationip, q1.reservationmac, q1.reservationname, q1.cnt
from
(your first query) q1
INNER JOIN
(your second query) q2
ON q1.reservationmac = q2.reservationmac and q1.reservationip <> q2.reservationip