Mysql 联接两个查询表

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

我如何连接这两个表?我猜是左连接还是右连接,但我不能确定语法

来自同一个表的两个查询生成了两个表:

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