有一列与访问中另一个表中的2个不同字段相关吗?

时间:2015-02-12 02:51:50

标签: sql database ms-access database-design relational-database

我正在为我的公司建立一个空运的访问数据库。我有一张包含所有机场的桌子,我还有另一张包含空运费用的桌子。以下是每个表的字段(a *表示它是键的一部分)

tblAirports

  • AirportID *(自动编号)
  • AirportCode(文字 - 3字母IATA代码)
  • AirportCity(号码 - 连接到城市表)

tblAirFreight

  • OriginAirport *(数字 - 连接到tblAirports)
  • DestAirport *(号码 - 连接到tblAirports)
  • 公司*(编号 - 连接到公司表)
  • 50公斤。
  • 100公斤。
  • 500公斤。

空运已连接到机场桌面,并在原始和目的地服务上具有参考完整性。

现在,即使是简单的选择查询也无法在空运表上运行。我想输入原始机场代码(SEA,JFK等)和/或目的地机场代码,并查询以返回相应的空运费率。我该怎么做?

1 个答案:

答案 0 :(得分:0)

听起来您想要获取货运表中每个机场列的机场详细信息,因此您只需加入机场表两次。然后根据提供的参数进行过滤。这只是粗略指向正确的方向,你可能需要稍微使用where子句。

select *
from 
    tblAirFreight f
    inner join tblAirports o
        on o.AirportID = f.OriginAirport
    inner join tblAirports d
        on d.AirportID = f.DestAirport
where 
    (f.OriginAirport = @YourOriginAirport or isnull(@YourOriginAirport) = 1)
    and (f.DestAirport = @YourDestAirport or isnull(@YourDestAirport) = 1)