关于加盟条件的问题。需要比较从 A 点到 B 点的发货数量

Question about join conditions. Needing to compare number of shippings from point A to point B

我需要比较从目的地 A 到目的地 B 的发货数量。有两个 table,1 和 2。Table 1 有目的地 A 和目的地 B 列。 Table 2 的主键代码与 table1 上的 Destination A 和 Destination B 列相关联。我的问题是我不确定如何将 table2 的主键中的特定值分配给“Destination A”,以及如何将 table2 的主键中的另一个特定值分配给“DestinationB”。

例如:

SELECT *
FROM table1
LEFT JOIN table 2
ON table1.destinationA = table2_primarykey
WHERE table2.destination = "Chicago"

这将向我显示 Table 1 中具有相当于芝加哥市的目标键的所有行,这是我正在尝试做的事情的一半。另一半是将 table 1 中的特定主键值设置为“目标 B”。

SELECT *
FROM table1
LEFT JOIN table 2
ON table1.destinationA = table2_primarykey and table1.destinationB = table2_primarykey
WHERE table2.destination in ('Chicago','Seattle')

在上面的查询中,我试图计算出从始发地芝加哥到目的地西雅图有多少货件。上面的连接条件对我不起作用,因为它只会显示芝加哥到芝加哥和西雅图到西雅图。

有什么解决办法吗?

尝试使用 TABLE2 两次,每次都通过连接 TABLE1 中的相应目标列并在 where 部分中选择所需的目标。

SELECT * FROM TABLE1 A 
JOIN TABLE2 B ON A.DestinationA = B.PrimaryKey 
JOIN TABLE2 C ON A.DestinationB = C.PrimaryKey 
WHERE B.Destination = 'Chicago' and C.Destination = 'Seattle'

此查询将映射与 DestinationA 和 DestinationB 关联的 Destination(来自 TABLE2),就好像它们来自不同的表一样,并且在 WHERE 部分中选择相应的目标应该会给出所需的结果。