gpt4 book ai didi

sql - 如何获取sql中的缺失值?

转载 作者:行者123 更新时间:2023-12-04 00:10:58 26 4
gpt4 key购买 nike

我需要帮助。

我有一个与另外两个表 t1 和 t3 相关的 sql 表 t2。

t2 有字段:

idFromt3 idFromt1 Value

1 14 text1
2 14 text2
1 44 text1
2 44 text2
3 44 text3

我正在寻找缺少 ifFromt3 的值。
我想在这个例子中找到值 ifFromt3 = 3,因为它不存在。

我正在像这个例子那样做,但它不能正常工作。
SELECT t3.idFromt3, t3.idFromt1
FROM t3
INNER JOIN t2
ON t3.LanguageMessageCodeID <> t2.idFromt2

这是3张 table 。
CREATE TABLE [dbo].[t3](
[t3ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
)

CREATE TABLE [dbo].[t2](
[t2ID] [int] IDENTITY(1,1) NOT NULL,
[t3ID] [int] NOT NULL,
[t1ID] [int] NOT NULL,
)


CREATE TABLE [dbo].[t1](
[t1ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
)

更新:

有数据的表:
http://www.2shared.com/photo/40yY6FC-/Untitled.html

我需要一个查询,它返回表LangugageMes​​sageCodes 中所有缺失的组合。

在这种情况下:
LanguageMessageCodeID  LanguageID
3 14
1 47
2 47
3 47

请。帮助。

问候。

最佳答案

SELECT  *
FROM t2
WHERE t2.idFromt3 NOT IN
(
SELECT LanguageMessageCodeID
FROM t3
)

或者
SELECT  *
FROM t2
WHERE NOT EXISTS
(
SELECT NULL
FROM t3
WHERE t3.LanguageMessageCodeID = t2.id
)

或者
SELECT  t2.*
FROM t2
LEFT JOIN
t3
ON t3.LanguageMessageCodeID = t2.id
WHERE t3.LanguageMessageCodeID IS NULL

更新:

试试这个:
SET NOCOUNT ON
DECLARE @t1 TABLE (id INT NOT NULL PRIMARY KEY)
DECLARE @t2 TABLE (t3id INT NOT NULL, t1id INT NOT NULL, PRIMARY KEY (t1id, t3id))
DECLARE @t3 TABLE (id INT NOT NULL)

INSERT
INTO @t1
VALUES (14)
INSERT
INTO @t1
VALUES (44)

INSERT
INTO @t2
VALUES (1, 14)
INSERT
INTO @t2
VALUES (2, 14)
INSERT
INTO @t2
VALUES (1, 44)
INSERT
INTO @t2
VALUES (2, 44)
INSERT
INTO @t2
VALUES (3, 44)

INSERT
INTO @t3
VALUES (1)
INSERT
INTO @t3
VALUES (2)
INSERT
INTO @t3
VALUES (3)

SELECT t1.id, t3.id
FROM @t1 t1
CROSS JOIN
@t3 t3
WHERE NOT EXISTS
(
SELECT NULL
FROM @t2 t2
WHERE t2.t1id = t1.id
AND t2.t3id = t3.id
)

关于sql - 如何获取sql中的缺失值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4076968/

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