【问题标题】:Join three tables with one of them not having a primary key加入三个表,其中一个没有主键
【发布时间】:2011-12-27 13:35:56
【问题描述】:

我想将三张桌子合并在一起。

Domain table
-domainid - Primary key

DomainRegion table
-domainid - Don't have a Primary Key or Foreign Key
-dombegin
-domend

DynDomrun table
-ddid - Primary Key
-confid1
-confid2

“domain.domainid”、“domainregion.domainid”和“dyndomrun.ddid”具有相同类型的数据类型,“字符不同”。

现在,问题是“domain.domainid”和“domainregion.domainid”中有两个额外的字符,我似乎无法与“dyndomrun.ddid”进行连接。

但是,“domainid”与“ddid”相关,只是“domainregion.domainid”没有分配主键或外键,我需要该表中的一些字段与其他字段连接。

最后,我需要一个完整的表格,列出“dyndomrun.ddid、domainregion.dombegin、domainregion.domend、dyndomrun.confid1、dyndomrun.confid2”。

我尝试过使用where ("domain.domainid",8)=left("dyndomrun.ddid",8),它给了我一个错误提示

ERROR: function left(character varying, integer) does not exist HINT: No function matches the given name and argument types. You may need to add explicit type casts.

我尝试过使用连接和其他 sql 语句,但它们似乎都不起作用。

关于如何解决这个问题的任何想法?

谢谢。

【问题讨论】:

标签: sql postgresql join primary-key


【解决方案1】:

除了我回答的here,您还需要阅读syntax of identifiers in PostgreSQL

这个:

"domain.domainid"

应该是

"domain"."domainid"

或者更好,简单地说:

domain.domainid

【讨论】:

  • 谢谢欧文。至于您之前在我的帖子中发布的解决方案,您介意向我解释一下,因为我是 SQL 的初学者。再次感谢您。
猜你喜欢
  • 2014-11-16
  • 2012-05-24
  • 2020-03-28
  • 2014-05-12
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
相关资源
最近更新 更多