简体   繁体   English

MS Access选择多个联接

[英]MS Access Select Multiple Joins

I'm trying to select by c# and odbc from the following tables. 我正在尝试通过c#和odbc从下表中进行选择。

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

The result should look like 结果应该看起来像

FromDevName  | FromPort | ToDevName | ToDevPort

i tried already the following statement: 我已经尝试过以下语句:

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

and I couldn't get all records. 而且我无法获得所有记录。 I guess there is a mistake at my join condition. 我想我的加入条件有误。

Presumably, you need left join : 大概,您需要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;

The reason your query would not return all the rows is because the devises may not always match. 您的查询不会返回所有行的原因是因为这些设计可能并不总是匹配的。 If this is the case, then INNER JOIN will filter out the rows with unmatched devices. 在这种情况下, INNER JOIN将过滤出设备不匹配的行。 A LEFT JOIN will keep all the rows in the first table, assigning NULL for the columns from the second and third tables. LEFT JOIN将把所有行保留在第一个表中,为第二个和第三个表中的列分配NULL

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

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