我创建了两个临时表,我想查询结果
Adam Eats Rasins Fork Life
Dan Eats Hotpockets At Home
下面是我用来生成两个临时表的代码和我运行的查询,它获取了所有三行。
CREATE GLOBAL TEMPORARY TABLE TABI (AAA CHAR(20), AAB CHAR(20), AAC CHAR(20),
AAD CHAR(20), AAE CHAR(20));
INSERT INTO TABI VALUES('Tim','Eats','Corn','Fork','Work');
INSERT INTO TABI VALUES('Adam','Eats','Rasins','Fork','Life');
INSERT INTO TABI VALUES('Dan','Eats','Hotpockets','At','Home');
CREATE GLOBAL TEMPORARY TABLE CRIT (CRIV CHAR(4));
INSERT INTO CRIT VALUES('CORN');
SELECT TABI.*
FROM TABI, CRIT
WHERE UPPER(TABI.AAC) NOT LIKE CRIT.CRIV;
我现在的问题是,当我希望它用Adam和Dan获取两行时,它会获取所有三行,但不是Tim。表一有五列,表二只有一列。
我不喜欢吗?我可以使用下面的代码,我将成功只用Tim生成一行。
SELECT TABI.*
FROM TABI, CRIT
WHERE UPPER(TABI.AAC) = CRIT.CRIV;
答案 0 :(得分:0)
!=可以使用。 您也可以使用类似的语法:
SELECT TABI.*
FROM TABI, CRIT
WHERE UPPER(TABI.AAC) <> CRIT.CRIV;
或其他变体:
SELECT TABI.*
FROM TABI t
LEFT JOIN CRIT c ON (UPPER(t.AAC) = c.CRIV)
WHERE c.CRIV IS NULL;
答案 1 :(得分:0)
使用Not In Clause:
SELECT TABI.*
FROM TABI, CRIT
WHERE UPPER(TABI.AAC) Not IN( CRIT.CRIV);
答案 2 :(得分:0)
我了解您需要从TABI
中提取CRIT
中的“不存在”行SELECT TABI.*
FROM TABI
WHERE NOT EXISTS (
SELECT 1
FROM CRIT
WHERE UPPER(TABI.AAC) = CRIT.CRIV
)
中的匹配行;那就是:
contents: [
{ title: "some title", content_type: 2 },
{ title: "some title", content_type: 2 },
{ title: "some title", content_type: 1 },
{ title: "some title", content_type: 2 },
{ title: "some title", content_type: 1 },
]