首先,抱歉标题。想不出任何更好的头衔。
这就是我得到的:
SELECT study FROM old_employee;
study
---------
STUDY1
STUDY2
STUDY3
STUDY1
STUDY2
SELECT id,name_string FROM studies;
id | name_string
----+-------------------
1 | STUDY1
2 | STUDY2
3 | STUDY3
现在我想根据第一个输出找到id。这就是我的尝试,但显然它不起作用。
SELECT id FROM studies WHERE name_string LIKE (SELECT study FROM old_employee);
我想要的输出:
id
----
1
2
3
1
2
编辑:我将old_employee保存为一个视图,我想知道是否有更聪明的方法将其包含在下面的答案中,而不是先创建此视图。
CREATE VIEW old_employee AS
SELECT *
FROM dblink('dbname=mydb', 'select study from personnel')
AS t1(study char(10));
答案 0 :(得分:1)
这可以在不使用SQL LIKE Operator的情况下完成。这是查询。
SELECT s.id
FROM studies s,
old_employee o
WHERE s.name_string = o.study;
第二个查询(根据@a_horse_with_no_name所说的):
SELECT studies.id
FROM studies
INNER JOIN old_employee
ON studies.name_string = old_employee.study