带内联值的SQL内部联接

时间:2019-10-18 17:24:27

标签: sql

类似于这一问题的问题已经问了几次,但在我的(简单的)用例中却没有看到。在DISTINCT中使用INNER JOIN值。

问题描述:

我有两个表Table ATable B。它们可以通过变量ID连接。每个ID可能同时出现在Table ATable B的多行中。

我想对INNER JOIN中出现的Table A的不同值Table B IDTable B进行选择,并选择{{1} }和Table A并与Table A.ID中的某些条件匹配。

我想要的东西:

我想确保Table B每行仅获得一份副本,其中Table A与满足Table A.ID的{​​{1}}匹配。

我想做什么:

Table B.ID

此外:

作为另一个(非常愚蠢的)约束,我无法说出正在使用的SQL标准,因为我正在通过Stata的[some condition]命令在数据库上执行SQL查询,因此我无从得知变量名称和“它确实接受SQL查询”这一事实(<-这是我所掌握的信息的范围。)

1 个答案:

答案 0 :(得分:0)

如果要让a中的所有行与b中的ID匹配,请使用exists

select a.*
from a
where exists (select 1 from b where b.id = a.id);

尝试使用join只会使事情复杂化,因为它既过滤并生成重复项。