这是情况,我有3个看起来像这样的表.
table foo
type number
a 1
b 2
c 3
d 4
table bar
number shape
1 square
2 circle
3 triangle
4 rectangle
table foobar
shape colour
square red
circle green
triangle blue
rectangle yellow
triangle purple
Run Code Online (Sandbox Code Playgroud)
他们都有我没有列出的独特ID.
我有类型,但我想找到颜色.现在我可以做三个SQL请求来获取它,但由于SQL可能是瓶颈所以我想知道我是否可以将三个SQL请求合并为一个请求.
是否可以执行此操作并且它将比三个单独的SQL请求运行得更快
1将返回红色,3将返回蓝色和紫色.
SELECT fb.colour
FROM foo AS f
INNER JOIN bar AS b ON f.number = b.number
INNER JOIN foobar AS fb ON b.shape = fb.shape
WHERE f.type = "YOURTYPE"
Run Code Online (Sandbox Code Playgroud)
您可以使用 JOINS
连接行并使用where子句指定所需的类型.这样做肯定会更快:
SELECT number FROM foo WHERE type="YOURTYPE"
SELECT shape FROM bar WHERE number="NUMBERRETRIEVEDFROM"
SELECT colour FROM foobar WHERE shape="SHAPE"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
84 次 |
最近记录: |