如何从2个表格中进行选择和子选择?

时间:2019-06-10 16:46:19

标签: sql-server

假设我有2张桌子,如下所示:

表1:

variable    value
--------------------------------------------
app1        name@email.com, name2@email.com
app2        name3@email.com, name4@email.com

表2:

app DatabaseName    server
---------------------------
app1    DB1        server1
app1    DB1        server2
app2    DB2        server1
app2    DB2        server3

我想从Table1的value列中选择电子邮件收件人,在Table2中,DatabaseName为“ DB1”。

预期结果是:name @ email.com,name2 @ email.com。

我该怎么做?

这里最棘手的部分是,表1中的列名不是“ app”,而是“ variable”。就是这样的要求,那么如何根据DatabaseName在Table2中属于Table1并与之匹配的分类应用程序来实现为DatabaseName选择电子邮件收件人?

2 个答案:

答案 0 :(得分:1)

您只需要加入即可。

SELECT DISTINCT T1.[value] 
FROM Table1 T1 INNER JOIN Table2 T2 
ON T1.[variable] = T2.[APP] 
WHERE T2.DatabaseName = 'DB1'

答案 1 :(得分:1)

您需要加入表格:

select distinct t1.*
from table1 t1 inner join table2 t2
on t2.app = t1.variable
where t2.databasename = 'DB1'

我使用distinct是因为从您的示例数据来看,databasename = 'DB1'有2行,否则您将获得同一行两次。