gpt4 book ai didi

mysql - mysql VIEW 中的子查询

转载 作者:行者123 更新时间:2023-11-29 02:48:03 25 4
gpt4 key购买 nike

以下 SQL 查询在用于创建 VIEW 时显示子查询错误的用法。这是为了从 table1 中获取名为 CODE 的字段的值,其中这些值不存在于 table2 中,并且当 table2 中这些 CODE 的状态不是“已分配”或“已售出”时。

SELECT S1.CODE
FROM STOCK S1
LEFT JOIN (
SELECT t1.CODE
FROM STOCK t1
JOIN SALES t2 ON t2.CODE = t1.CODE
WHERE t2.STATUS IN ('Sold', 'Assigned')) S2 ON S2.CODE = S1.CODE
WHERE S2.CODE IS NULL

SQL 查询提供了良好的输出,但在创建 VIEW 时无法使用它。请帮我解决这个问题。

最佳答案

关于 MySQL Subqueries 的好信息

您的查询不起作用的原因是您不能在 MySql View 的 FROM 子句中有子查询。

我无法 100% 肯定地理解您的要求,但您似乎想要一个表中不存在于另一个表中的行,或者它们可以存在于另一个表中但它们不能具有特定状态。如果我对要求的理解是正确的,那么这个查询会做同样的事情。这些是我现在必须使用的表格,验证了它工作正常。

如果我的要求有误,请提供指导。

/* 
VIEW: v_testview
get rows where adminid not in second table
and rows that are in second table but have
an email not equal duckduckgo@notgoogle.com
*/
CREATE VIEW v_testview AS
SELECT s.adminid, s.company
FROM panel_customers s
WHERE s.adminid NOT IN
(SELECT sa.adminid
FROM panel_admins sa
WHERE sa.email = 'duckduckgo@notgoogle.com')
AND s.adminid NOT IN
(SELECT sa.adminid
FROM panel_admins sa);
.

关于mysql - mysql VIEW 中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39422479/

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