如何搜索表1中的某些数据,其他数据在表3中,两者的UUID相同

时间:2013-05-15 01:52:44

标签: mysql

我有3张桌子

例如

Salestable
-ID
-variableB
-customerUUID
-variableC

Customertable
-customerUUID
-contractUUID

Contracttable
-contractUUID
-variableD

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

像:

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

我该怎么做?我在哪里可以找到与当前salestable相关的合同?

更多信息

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

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

2 个答案:

答案 0 :(得分: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'

要进一步了解联接,请访问以下链接:

答案 1 :(得分: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