SELECT *
FROM apps
INNER JOIN markets
ON markets.app_id = apps.id
AND markets.code = 'US'
以下查询将获取美国的应用程序:
In [13]: A = MatrixSymbol("A", 1, 3)
In [14]: A.as_explicit().norm()
Out[14]:
__________________________
╱ 2 2 2
╲╱ │A₀₀│ + │A₀₁│ + │A₀₂│
但是如何获得上述记录, 以及任何没有市场的应用 ?
查询将返回应用1和2。
PostgreSQL 9.3.5,9.3.9和9.4.7
答案 0 :(得分:2)
以下是outer join
的一个选项:
select *
from apps
left join markets
on markets.app_id = apps.id
where markets.app_id is null or
markets.code = 'US'
答案 1 :(得分:1)
作为备注,您似乎不想要有关应用的信息,因此您可以这样做:
select a.*
from apps a
where not exists (select 1 from markets m where m.app_id = a.id) or
exists (select 1 from markets m where m.app_id = a.id and m.code = 'US');