表达a = b = c的查询的最佳方法是什么?

时间:2016-03-27 09:12:17

标签: mysql sql

我有三个表(t1,t2,t3),它们是彼此的精确副本。每个表都有列a,b,c,它们是随机整数。

我想查询t1.a = t2.b = t3.c。

但是,如果我查询t1.a = t2.b = t3.c,我会得到错误的结果。看起来每一行都在加入。这是为什么?

如果我查询t1.a = t2.b和t2.b = t3.c,我的查询会返回好的结果。

我应该指定t1.a = t2.b和t2.b = t3.c和t1.a = t3.c吗?

逻辑上表达t1.a = t2.b = t3.c的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

对于过滤条件 a = b = c 指定

 t1.a = t2.b and t2.b = t3.c 

应该足以达到目的。

答案 1 :(得分:1)

试试这个,因为这会逐步过滤结果:

  • table1table2(让我们说这个结果filteredResult1
  • filteredResult1table3(让我们坐下吧) filteredFinalResult
可以使用以下方式获取

filteredFinalResult

SELECT 
    t1.*, t2.*, t3.* 
FROM 
    table1 t1 
INNER JOIN 
    table2 t2 
ON 
    t1.a = t2.b 
INNER JOIN 
    table3 t3 
ON 
    t2.b = t3.c