gpt4 book ai didi

Mysql "IN"作为 AND

转载 作者:行者123 更新时间:2023-11-29 04:30:21 25 4
gpt4 key购买 nike

我想知道 mysql IN 是否可以用作 AND 语句:

SELECT item_id
FROM table_items as a i
WHERE i.attribute_id
IN (
SELECT attribute_id
FROM table_attribute as a
WHERE [..]
)

我想从 table_b 中选择包含在 table_a 中选择的所有值的项目。换句话说,前面的查询是用 OR 选择的,我希望它是 AND。

最佳答案

IN 就像一个 OR 运算符。这不是 AND。所以它更像是从表 B 中获取 ID 为 1、2 或 3 的行。AND 运算符无论如何都不起作用,因为具有某个 ID 的特定行只有一个值,而不是同时有多个值。 AND 表示特定行 ID 应具有多个值。

改为使用表 JOIN

如果我明白你想做什么,那么你应该在这两个表上使用 INNER JOIN:

SELECT b.ID
FROM TableB AS b
JOIN TableA AS a
ON (a.ID = b.ID)

这样,您将从 TableB 中获取那些在 TableA 中具有对应行的行。如果您的表是相关的并且 TableA 是 TableB 的子集(因此 TableB 是主键,TableA 中的 ID 是指向 TableB 的外键),那么这就是适合您的解决方案。

当然,您必须更改表名和表列。

检查 MySql documentation关于 JOIN 语法。

关于Mysql "IN"作为 AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3522461/

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