在我开始之前,是的,我彻底地尝试了寻找关于连接/内部连接/外部连接/完全连接的许多教程,但我不确定我到底在寻找什么,所以一点指导或只是一个手指指向正确的方向将是非常有帮助的。我会尽量弄清楚的。
基本上,我有三张桌子

| FooID | name | data  |
  1      Name1  Data1
  2      Name2  Data2
  3      Name3  Data3
  4      Name4  Data4

酒吧
| BarID |
 1
 2

矩阵
| BarID | FooID|
 1        2
 1        3
 1        4
 2        1
 2        3

所以我要找的是,我基本上是BarID(为了清楚起见,我们假设它是1)。我想从表矩阵中得到与BarID相关的所有行,这样我就可以在Foo中检索到它相关的行(例如,BarID=1,所以我应该在Foo中得到第2、3和4行,如果BarID是2,我将得到1和3,依此类推)。
我在尝试类似的方法:
SELECT Foo.FooID, Foo.name, Foo.data
FROM Bar
JOIN Matrix ON Matrix.BarID = 1     // The 1 is passed in, in this example
JOIN Foo ...                       // And this is where I'm stuck

我要完成的事情有意义吗?我知道这很奇怪。如有任何帮助,请指点。提前谢谢你!

最佳答案

你似乎想要一个简单的JOINWHERE

select f.*
from foo f join
     matrix m
     on f.fooid = m.fooid
where m.barid = 1;

您不需要bar表,因为您正在传入id。我想您可能是想得太多了。

10-08 12:54