Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 通过进一步检查修改select以排除具有类似列名的单独表中的值_Sql_Oracle - Fatal编程技术网

Sql 通过进一步检查修改select以排除具有类似列名的单独表中的值

Sql 通过进一步检查修改select以排除具有类似列名的单独表中的值,sql,oracle,Sql,Oracle,统计8条记录。工作正常,但需要进一步检查。我下面的尝试超过了一千次,所以没有正常工作。我想这是因为res_sear也有一个“ID”列。我该怎么做?下面应该像上面一样计算8,但检查并排除res_sear.position='X'的记录 SELECT count(res_c.id) FROM res_c WHERE id = '5552'; 我需要加入吗?正确的方法是什么?您在外部查询中缺少res\u c和res\u sear之间的连接条件。只需在可以连接两个表的列中添加连接条件,您就可以了。在外

统计8条记录。工作正常,但需要进一步检查。我下面的尝试超过了一千次,所以没有正常工作。我想这是因为res_sear也有一个“ID”列。我该怎么做?下面应该像上面一样计算8,但检查并排除res_sear.position='X'的记录

SELECT count(res_c.id) FROM res_c WHERE id = '5552';

我需要加入吗?正确的方法是什么?

您在外部查询中缺少res\u c和res\u sear之间的连接条件。只需在可以连接两个表的列中添加连接条件,您就可以了。

在外部查询中缺少res_c和res_sear之间的连接条件。只需在可以连接两个表的列中添加一个表,就可以了。

您可以像这样进行
左连接

SELECT count(res_c.id)  
FROM res_c, res_sear
WHERE res_c.id = '5552'
AND res_sear.id NOT IN 
(SELECT res_sear.id FROM res_sear WHERE res_sear.position = 'X');
(或)如下图所示

SELECT count(res_c.id)  
FROM res_c
left join res_sear
on res_c.id = res_sear.id
and res_sear.position = 'X'
WHERE res_c.id = '5552'
AND res_sear.id is null;
选择计数(资源id)
从res_c加入res_sear
在res_c.id=res_sear.id上
其中res_c.id='5552'
和res_sear.position'X';

你可以像这样做
左连接

SELECT count(res_c.id)  
FROM res_c, res_sear
WHERE res_c.id = '5552'
AND res_sear.id NOT IN 
(SELECT res_sear.id FROM res_sear WHERE res_sear.position = 'X');
(或)如下图所示

SELECT count(res_c.id)  
FROM res_c
left join res_sear
on res_c.id = res_sear.id
and res_sear.position = 'X'
WHERE res_c.id = '5552'
AND res_sear.id is null;
选择计数(资源id)
从res_c加入res_sear
在res_c.id=res_sear.id上
其中res_c.id='5552'
和res_sear.position'X';

您不应该在
FROM
子句中包含
res\u sear
。而是:

SELECT count(res_c.id)  
FROM res_c JOIN res_sear
on res_c.id = res_sear.id
WHERE res_c.id = '5552'
AND res_sear.position <> 'X';

FROM
子句中不应该有
res\u sear
。而是:

SELECT count(res_c.id)  
FROM res_c JOIN res_sear
on res_c.id = res_sear.id
WHERE res_c.id = '5552'
AND res_sear.position <> 'X';

这是ANSI 92系统的优点之一。如果不指定条件,
res\u c
res\u sear
是如何相关的,我们就无法编写连接?如果是通过两个表中的
id
列进行查询,则查询没有多大意义;您希望
id
'5552'
还是同样的
id
不在(子查询)中?这可以写得更简单,不需要
不在
或任何其他连接或反连接。请澄清。这是ANSI 92系统的优点之一。如果不指定条件,
res\u c
res\u sear
是如何相关的,我们就无法编写连接?如果是通过两个表中的
id
列进行查询,则查询没有多大意义;您希望
id
'5552'
还是同样的
id
不在(子查询)中?这可以写得更简单,不需要
不在
或任何其他连接或反连接。请澄清一下。我发誓我试过了,但没用!连一双好眼睛都比不上。谢谢大家的回答,但这似乎已经解决了问题。我发誓我试过了,但没用!连一双好眼睛都比不上。谢谢大家的回答,但这似乎已经解决了问题。