在我开始之前,是的,我彻底地尝试了寻找关于连接/内部连接/外部连接/完全连接的许多教程,但我不确定我到底在寻找什么,所以一点指导或只是一个手指指向正确的方向将是非常有帮助的。我会尽量弄清楚的。
基本上,我有三张桌子
福
| 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
我要完成的事情有意义吗?我知道这很奇怪。如有任何帮助,请指点。提前谢谢你!
最佳答案
你似乎想要一个简单的JOIN
和WHERE
select f.*
from foo f join
matrix m
on f.fooid = m.fooid
where m.barid = 1;
您不需要
bar
表,因为您正在传入id。我想您可能是想得太多了。