繁体   English   中英

MS Access选择多个联接

[英]MS Access Select Multiple Joins

我正在尝试通过c#和odbc从下表中进行选择。

LinkTab (FromDevID, FromPort, ToDevID, ToPort)
DevList (ID,DevName...)

结果应该看起来像

FromDevName  | FromPort | ToDevName | ToDevPort

我已经尝试过以下语句:

SELECT dev1.DevName, lt.FromPort, dev2.DevName, lt.ToPort 
FROM (LinkTab lt
INNER JOIN DevList dev1 ON lt.FromDevID = dev1.ID) 
INNER JOIN devList dev2 ON lt.ToDevID = dev2.ID

而且我无法获得所有记录。 我想我的加入条件有误。

大概,您需要left join

SELECT dev1.DevName, lt.FromPort, dev2.DevName, lt.ToPort 
FROM (LinkTab lt LEFT JOIN 
      DevList dev1
      ON lt.FromDevID = dev1.ID
     ) LEFT JOIN
     devList dev2
     ON lt.ToDevID = dev2.ID;

您的查询不会返回所有行的原因是因为这些设计可能并不总是匹配的。 在这种情况下, INNER JOIN将过滤出设备不匹配的行。 LEFT JOIN将把所有行保留在第一个表中,为第二个和第三个表中的列分配NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM