我非常感谢有关跨表 SQL 查询的帮助。我意识到这类问题经常被问到,但我找不到足够相似的问题来理解答案。
我想从中选择行table_A
中有相应的标签table_B
.
因此,例如,“从以下位置选择行table_a
标记为“椅子”的“将返回table_C
.
Also, id
是独一无二的table_a
,而不是在table_b
.
table_A: table_B: table_C:
id object id tag id object
1 lamp 1 furniture 3 stool
2 table 2 furniture 4 bench
3 stool 3 furniture
4 bench 4 furniture
4 chair
3 chair
或者,是否有更好的方法来组织数据?
最简单的解决方案是相关子选择:
select
A.*
from
table_A A
where
A.id in (
select B.id from table_B B where B.tag = 'chair'
)
或者你可以join表并过滤所需的行:
select
A.*
from
table_A A
inner join table_B B
on A.id = B.id
where
B.tag = 'chair'
您应该对两者进行分析,看看哪个在您的数据集上更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)