ORACLE SQL 查询从其他表中的行字符串匹配的行返回值

Posted

技术标签:

【中文标题】ORACLE SQL 查询从其他表中的行字符串匹配的行返回值【英文标题】:ORACLE SQL query to return a value from a row where strings of rows in other tables match 【发布时间】:2019-11-25 08:39:50 【问题描述】:

我正在尝试让它工作,它应该很简单,但我无法确定它。我只需要返回 num 的值,其中字符串在同一个表和另一个表中匹配。

表 1

string    num
-------   -----
xyzxy       100

表 2

string     othernum
--------   --------
xyzxy       200


SELECT num FROM table1 WHERE (SELECT string FROM table1 = SELECT string FROM table2)

【问题讨论】:

添加更多示例表数据,并指定预期结果。 【参考方案1】:

使用exists()

select num from table1 t1 where exists (select 1 from table2 where string = t1.string)

【讨论】:

【参考方案2】:

您也可以使用以下查询:

SELECT t1.num FROM table1 t1 join table2 t2 
WHERE t1. string = t2.string;

【讨论】:

【参考方案3】:

用在(?):

SELECT num 
FROM table1 t1 
WHERE t1.string in (SELECT string FROM table2)

这应该可行。

【讨论】:

以上是关于ORACLE SQL 查询从其他表中的行字符串匹配的行返回值的主要内容,如果未能解决你的问题,请参考以下文章

使用其他行的数据更新同一表中的行 SQL

Oracle_SQL 连接和子查询

MySQL-表连接

如何从 Oracle 表中获取几乎匹配的字符串?

SQL JOIN 查询返回我们在连接表中没有找到匹配项的行

在oracle数据库表中没有添加rowid字段为啥会出现