我有3张表
例如Salestable
-ID
-variableB
-customerUUID
-variableC
Customertable
-customerUUID
-contractUUID
Contracttable
-contractUUID
-variableD
所以我目前正在做一个SQL查询salestable
:
SELECT DISTINCT variableB FROM Salestable WHERE variableD = "blah";
我该怎么做?我在哪里可以找到与当前可售物品相关的合同?
更多信息
它们都是1:1的关系——所以Contracttable绑定到1个Customertable, Customertable绑定到1个salestable
在我的数据库中有大量的数据,成千上万的条目-这个查询不经常运行,但确实需要运行一些效率
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'
要进一步了解连接,请访问下面的链接:
- SQL连接的可视化表示
如果你确定合约存在,使用这个(否则交换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