加入三个表,其中一个表没有主键

时间:2011-12-27 13:35:56

标签: sql postgresql join primary-key

我有三张桌子,我想一起加入。

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语句,但它们似乎都不起作用。

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

此:

"domain.domainid"

必须是

"domain"."domainid"

或者更好,简单地说:

domain.domainid