gpt4 book ai didi

MySQL:如果 ID 与表 B 中的 2(或任意 n)行匹配,则从表 A 中选择

转载 作者:可可西里 更新时间:2023-11-01 07:33:41 25 4
gpt4 key购买 nike

场景非常简单:我在表 A 中有内容,在表 B 中有内容标签:

Table A:
+----+-------+-...
| id | title | ...
+----+-------+-...

Table B:
+------+-----+
| id_A | tag |
+------+-----+

我想选择 A 中所有带有标签 'foo' 的内容行:

SELECT A.* FROM A, B WHERE A.id = B.id_A AND B.tag = 'foo'

到目前为止,这很简单。

我的问题是:如何选择具有两者标签“foo”标签“bar”的内容行?特别是,对于 任意 n > 1,我如何选择具有 n 标签“foo”、“bar”...的行?

一个解决方案是加入 B n 次,但这感觉很糟糕,我认为,它并不是真正的高效。

由于我将 MySQL、PHP 和 PDO 与准备好的语句一起使用,如果在 PHP 部分有一个没有必要的字符串连接的解决方案(比如在 'Join n times' 解决方案中),那么将是我的最爱。

最佳答案

SELECT  *
FROM a
WHERE (
SELECT COUNT(*)
FROM b
WHERE b.id_a = a.id
AND b.tag IN ('foo', 'bar', 'baz')
) = 3

关于MySQL:如果 ID 与表 B 中的 2(或任意 n)行匹配,则从表 A 中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735466/

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