gpt4 book ai didi

子查询的 SQL IN 运算符值

转载 作者:行者123 更新时间:2023-12-03 18:25:46 26 4
gpt4 key购买 nike

我想从具有两列的 IN 子查询中获取一个值,而无需执行两个查询。

样本:

SELECT * FROM table1 WHERE id IN(SELECT id, flags FROM table2);

现在我想得到 flags直接地。有可能吗,如果有,怎么做?

任何帮助表示赞赏:)

最佳答案

听起来您正在尝试实现以下两件事之一:

1) 选择 table1 中记录的每个字段(以及关联的 table 2 标志),其中记录的 id 也在 table2 的 id 列中找到。如果是这种情况,那么是的,连接将完成您想要的:

SELECT t1.*, 
t2.flags
FROM table1 t1
JOIN table2 t2
ON t1.id = t2.id;

请注意 JOIN在这里使用(而不是其他类型的连接,例如 LEFT JOIN ),因为 JOIN将仅返回与 table2.id 匹配的 table1 记录。 LEFT JOIN另一方面,将返回每个 table1 记录,并且 table2 中没有匹配的 table1 id 将简单地具有 null在您返回的表的标志列中。

2) 选择 table1 中记录的每个字段,其中记录的 id 也在 table2 的 id 列或 table2 的 flags 列中找到。如果是这种情况,有几种方法可以获得所需的结果,但使用类似于问题的子查询来实现
SELECT * 
FROM table1
WHERE id IN (SELECT id FROM table2 UNION DISTINCT SELECT flags FROM table2)

关于子查询的 SQL IN 运算符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822680/

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