从一张表中选择与另一张表匹配的条件?

2023-12-20

我非常感谢有关跨表 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(使用前将#替换为@)

从一张表中选择与另一张表匹配的条件? 的相关文章

随机推荐