gpt4 book ai didi

mysql - 将多列匹配到多行子查询?

转载 作者:行者123 更新时间:2023-11-29 01:31:33 24 4
gpt4 key购买 nike

我仍在大量学习 mySQL(我仍然只对基本查询、计数、排序依据等感到满意)。很可能以前有人问过这个问题,但是要么我不知道要搜索什么,要么我是一个新手,无法理解答案:

我有两个表:

tb1 (a,b,path)
tb2 (a,b,value)

我想进行一个查询,为 tb1 中的每一行返回“路径”,其 a、b 与 tb2 上的不同查询匹配。在糟糕的 mysql 中,它会是这样的:

select
path
from tb1
where
a=(select a from tb2 where value < v1)
and
b=(select b from tb2 where value < v1);

但是,这不起作用,因为子查询返回多个值。请注意交换 =通过 in不够好,因为对于 select a,b from tb2 where value < v1 未返回的 a、b 值的组合来说也是如此

基本上,我已经在基于 tb2 的 (a,b)-space 中确定了一个有趣的区域,并且想研究 tb1 在该区域内的行为(如果这样可以使它更清晰的话)。

谢谢你:)

最佳答案

这是一份工作 for an INNER JOINab 上:

SELECT
path
FROM
tb1
INNER JOIN tb2 ON tb1.a = tb2.a AND tb1.b = tb2.b
/* add your condition to the WHERE clause */
WHERE tb2.value < v1

SELECT 列表或 WHERE 子句中的子查询用例通常可以使用某种类型的 JOIN 来处理。连接通常比子查询更快,因为当使用 SELECTWHERE 子查询时,可能需要对每一行执行子查询 返回,而不是只返回一次。

除了上面链接的关于 JOIN 的 MySQL 文档外,我还推荐 Jeff Atwood's Visual Explanation of SQL JOINs

关于mysql - 将多列匹配到多行子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10833743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com