gpt4 book ai didi

mysql - 从表中选择行,其中具有相同 ID 的另一个表中的行在另一列中具有特定值

转载 作者:IT老高 更新时间:2023-10-29 00:11:01 25 4
gpt4 key购买 nike

在 MySQL 中:

如果我们有两个表:

comments
key | value
=================
1 | foo
2 | bar
3 | foobar
4 | barfoo

和:

meta
comment_key | value
=========================
1 | 1
2 | 1
3 | 2
4 | 1

我想从 comment 获得评论具有相应 comment_key 的表在 meta具有特定 value 的表(value 表中的 meta 列)。

例如,我想从 comment 中选择所有行具有 value 的表的 1meta表:

我希望得到这些结果:

key    |    value
=================
1 | foo
2 | bar
4 | barfoo

如果我要从 comment 中选择所有行具有 value 的表的 2meta表:

我希望得到这样的结果:

key    |    value
=================
3 | foobar

真的希望有人能帮忙,提前谢谢大家!

我想我需要加入吗?任何指针都会很棒,如果可能的话,一个简短的解释,这样我就可以找出我哪里出错了 -> 下次我会知道的!

最佳答案

我实际上不建议为此使用 JOIN — 或者更确切地说,我建议使用“semijoin”,这是一个不直接用 SQL 表达的关系代数概念。半联接本质上是一种联接,您只想从一个表中检索记录,但条件是它们在不同的表中具有相应的记录。

在 SQL 表示法中,这个概念是通过使用 an IN clause 间接表达的。 , 带有 subquery :

SELECT key, value
FROM comments
WHERE key IN
( SELECT comment_key
FROM meta
WHERE value = 1
)
;

(MySQL 实际上最终会在内部将其转换回半连接——本质上是一种退化的内连接——但 IN 子句是在原始 SQL 中表达它的自然方式。)

关于mysql - 从表中选择行,其中具有相同 ID 的另一个表中的行在另一列中具有特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9105427/

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