我有两个表,如果重要的话,在 PostgreSQL 中,有一对多的关系。我需要加入他们,以便对于每个“一个”,我只能从“许多”表中获得单个结果。不仅如此,我还需要从“许多”表中挑选出具体的结果。
表_A 身份证 | 姓名 | 日期 | 更多科尔斯.... 1 | 约翰 | 2012-01-10 | …… 2 | 丽莎 | 2012-01-10 | …… 3 | 安妮 | 2012-01-10 | …… 4 | 詹姆斯 | 2012-01-10 | …… ... 表_B 身份证 | 代码1 | 代码2 | 种类 1 | 04020 | 85003 | 1 1 | 04030 | 85002 | 4 2 | 81000 | 80703 | 1 3 | 87010 | 80102 | 4 3 | 87010 | 84701 | 5 4 | 04810 | 85003 | 1 4 | 04030 | 85002 | 4 4 | 04020 | 85003 | 1 ... 查询结果 身份证 | 姓名 | 日期 | 代码1 | 代码2 1 | 约翰 | 2012-01-10 | 04020 | 85003 2 | 丽莎 | 2012-01-10 | 81000 | 80703 3 | 安妮 | 2012-01-10 | 87010 | 80102 4 | 詹姆斯 | 2012-01-10 | 04810 | 85003 ...
TABLE_B 中的 SORT 列实际上是重新排序的 CODE2 中的最后一个字符。CODE2 可以以 1-9 结尾,但 3 最重要,然后是 5、7、4、2、1、0、6、8、9,因此 3-->1、5-->2、7-->3 等等向前。
我面临的问题是我需要 TABLE_B 中排序是最低数字的行。在某些情况下,有多个最小情况(请参阅 TABLE_B 中的 ID=4),那么选择具有最低 ID 的哪一行并不重要,只要该 ID 有一个结果即可。