【发布时间】:2015-11-02 14:32:44
【问题描述】:
我正在尝试通过 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
我无法获得所有记录。我想我的加入条件有误。
【问题讨论】:
-
你正在做
inner连接,它只返回在连接的两边都匹配的记录。如果dev1连接产生的记录数与dev2不同,则这些记录将被抑制。 -
@MarcB 那我应该使用哪个连接?
-
left或right或full outer,也许。 -
您描述中的表名与您的 SQL 不匹配。 -- 如果
FromDevID和ToDevID都可以为NULL,则需要两个左连接。