回答

收藏

连接表并仅添加具有特定值的列

技术问答 技术问答 238 人阅读 | 0 人回复 | 2023-09-12

我在 PostgreSQL 数据库中有四个表(a、b、c、d):, f6 T' T6 j! h3 q3 F# D1 [
在此输入图片说明
, n  ~5 W8 r+ T我可以用subject.id 和 project.id 连接这些表的唯一键。我的查询是:' m3 L8 q6 S7 m
SELECT subject_id,firstname,lastname,national_id,project_title,project_id,note_templateFROM project_subject  JOIN subject ON subject.id = project_subject.subject_id  JOIN project ON project.id = project_subject.project_id  JOIN subject_note ON subject_note.subject_id = project_subject.subject_idWHERE project_id = xxxx我的问题是表 d (subject_notes) 一个主题可以有多个注释(varchar) 加上可选 note_template (int)。我想加入包含subject_id、firstname、lastname、national_id、project_title、project_id和note_template列表。当我加入四个表时,我得到了几个相同的主题行和不同的注释。我想要一个表格,每个主题只列出一次,只列出 note_template=直到16 才将值添加到最后一列。其他主题 note_template 会有空值。
; J" {, f' K/ m                                                               
0 G+ Q% c8 J" V7 \    解决方案:                                                               
8 v! i8 C$ L# d0 s/ ?7 ^' |7 h' H                                                                将最后一个LEFT连接更改为连接note_template = 16在ON句中添加条件:
3 N! j  Y9 g/ i& OLEFT JOIN subject_note ON subject_note.subject_id = project_subject.subject_id                      AND subject_note.note_template =
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则