从作为外键的父表的表中获取数据

时间:2018-03-09 11:47:15

标签: sql postgresql

我有两张表ContributionPaymentcontribution表包含project_id, user_id, email之类的数据。 Payment表包含contribution_id, state之类的数据。

基本上,如果用户在付款前填写并提交表单,则数据会存储在contribution表中。如果用户在提交表单后完成整个付款操作,则会将其存储在Payment表中。

现在我想从email and user_id表格中获取Contribution,其{project> id = x及其贡献Payment.state == paid

知道如何在SQL中执行此操作吗?

2 个答案:

答案 0 :(得分:0)

基本上,这取决于你的桌子有多大,然后我们会有很多解决方案。

简单查询

 SELECT email, user_id
   FROM Contribution c
   JOIN Payment p ON c.contribution_id = p.contribution_id
  WHERE p.state = 'state'
        AND c.project_id = 'x'

我希望我理解你的问题,这个答案让你满意。

答案 1 :(得分:0)

您可以使用join来实现此目的,如下所示,

select email, user_id  
from Contribution a join Payment b on a.contribution_id = b.contribution_id
where a.project_id = x and b.state = 'paid';