2

我有 3 张桌子

例如

Salestable
-ID
-variableB
-customerUUID
-variableC

Customertable
-customerUUID
-contractUUID

Contracttable
-contractUUID
-variableD

所以我目前正在对 salestable 进行 SQL 查询

像:

SELECT DISTINCT variableB FROM Salestable WHERE variableD = "blah";

我怎样才能做到这一点?在哪里可以找到与当前销售表相关的合同?

更多信息

它们都是 1:1 的关系 - 所以 Contracttable 与 1 个 Customertable 相关联,而 Customertable 又与 1 个 salestable 相关联

我的数据库中有数千个条目的大量数据 - 此查询不会持续运行,但确实需要运行一些有效的。

4

2 回答 2

1
SELECT  a.*
FROM    SalesTable a
        INNER JOIN CustomerTable b
            ON a.customerUUID = b.customerUUID
        INNER JOIN Contracttable c
            ON b.contractUUID = c.contractUUID
WHERE   c.variableD = 'valueHere'

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-05-15T01:57:04.753 回答
1

如果您确定合同存在,请使用此(否则将 INNER FOR LEFT 交换):

SELECT variableB, variableD
FROM Salestable t1
INNER JOIN Customertable t2 ON (t1.customerUUID = t2.customerUUID)
INNER JOIN Contracttable t3 ON (t3.contractUUID = t2.contractUUID)
WHERE variableD = "blah"
GROUP BY t1.variableB 
于 2013-05-15T01:58:34.133 回答