微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL查询和PHP帮助

直接在这个小介绍下,您将看到我正在使用的数据库表的布局,然后您将看到我的问题的详细信息.请提供尽可能多的指导.我还在学习 PHPsql,我非常感谢你的帮助,因为我掌握了这个.

表一(‘bue’) –
chp_cd
rgn_no
bgu_cd
work_state

表二(‘chapterassociation’) –
chp_cd
rgn_no
bgu_cd
work_state

数据库类型:Postgresql

我正在尝试用这两个表做以下事情,我认为这是一个我必须要做的事情,但我并不是很熟悉它,我正在努力学习.到目前为止,我已经创建了一个查询,从这些表中选择一组数据,以便不在整个数据库上运行查询.现在选择了数据,我正在尝试执行以下操作…

首先,应该根据表2(‘chapterassociation’)的’work_state’检查表一(‘bue’)的’work_state’.一旦找到匹配,表1(‘bue’)的’bgu_cd’应与表2的’bgu_cd’匹配(‘chapterassociation’).找到两个匹配项后,它将始终指向第二个表中的唯一行(‘chapterassociation’).使用第二个表中的唯一行(‘chapterassociation’),’rgn_no’和’chp_cd’的值应该在第一个表(‘bue’)中更新,以匹配第二个表(‘chapterassociation’)中的值.

我知道这可能要求很多,但如果有人可以帮我构建一个查询来做到这一点,那就太好了!我真的很想学习,因为我不想永远对此无知.虽然我不确定我是否完全理解这里的JOIN和比较是如何工作的.

如果我是正确的,我将把它放到单独的查询中,然后将在PHP中.因此,例如,它可能是一些以最终查询的最终结果结束的IF ELSE语句,它将表2中的值更新为表1.

解决方法

一个JOIN会为你做两个级别的匹配……

bue
INNER JOIN
  chapterassociation
    ON  bue.work_state = chapterassociation.work_state
    AND bue.bgu_cd     = chapterassociation.bgu_cd

实际算法由Postresql确定.它可以是合并,使用哈希等,并且取决于索引和有关数据的其他统计信息.但是你不需要直接担心,sql会为你提取这些内容.

那么你只需要一种机制将数据从一个表写入另一个表…

UPDATE
  bue
SET
  rgn_no = chapterassociation.rgn_no,chp_cd = chapterassociation.chp_cd
FROM
  chapterassociation
WHERE bue.work_state = chapterassociation.work_state
  AND bue.bgu_cd     = chapterassociation.bgu_cd

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐