postgresql条件列名=数据

postgresql条件列名=数据,postgresql,Postgresql,我有三张桌子 table a | uid | name | number | |-----+---------+--------| | 1 | table | 1 | | 2 | chair | 2 | table b | uid | name | number | |-----+---------+--------| | 1 | john | 1 | | 2 | billy | 0 |

我有三张桌子

table a
 | uid | name    | number | 
 |-----+---------+--------|
 | 1   | table   | 1      |
 | 2   | chair   | 2      |

table b
 | uid | name    | number | 
 |-----+---------+--------|
 | 1   | john    | 1      |
 | 2   | billy   | 0      |
 | 3   | bob     | 2      |
 | 4   | sally   | 1      |

table c 
 | uid | table a | john    | billy  | bob  | sally | 
 |-----+---------+--------+--------+-------|-------|
 | 1   | table   |    T   |        |       |  T    |
 | 2   | chair   |        |        |   C   |       |
我需要做的是查看表c中的列名,找到表b中相应的行条目,如果数字与表a中的数字相同,则将表c值设置为T。否则,将其设置为c。每当更新表a或表b时,都需要触发此操作

如何使用if或case语句编写更新表。
谢谢。

为什么不在需要时生成
c
,而不是维护它以进行插入、更新和删除?表a和表b由单独的表自动更新。所以我只想在更新任何一个表时调用一个触发器。您必须有一个很好的理由来解释这种复杂性
c
完全是从另外两个表派生出来的,因此单独存储它是糟糕的数据库设计——除非您有充分的理由来冗余它。