3 개의 테이블을 연결해야합니다. 내 코드는 두 테이블에서 잘 작동하지만 세 테이블에서는 작동하지 않습니다. 데비안에서는 PostgreSQL 9.4.9를 사용합니다. 이 개 테이블postgresql에서 3 행/테이블 결합하기
코드 (WORKS) : 3 개 테이블
SELECT
manufactures.manufacturename
,products.productname
FROM products
INNER JOIN manufactures
ON manufactures.manufactureid=products.productmanufacturer;
코드 (하지 않습니다 작품)
SELECT
manufactures.manufacturename
,products.productname
,languages.languagename
FROM products
INNER JOIN manufactures
ON manufactures.manufactureid=products.productmanufacturer
INNER JOIN languages
ON languages.languagename=products.productlanguage;
오류 메시지
baza_testowa=# SELECT
baza_testowa-# manufactures.manufacturename
baza_testowa-# ,products.productname
baza_testowa-# ,languages.languagename
baza_testowa-# FROM products
baza_testowa-# INNER JOIN manufactures
baza_testowa-# ON manufactures.manufactureid=products.productmanufacturer
baza_testowa-# INNER JOIN languages
baza_testowa-# ON languages.languagename=products.productlanguage;
ERROR: operator does not exist: text = integer
LINE 9: ON languages.languagename=products.productlanguage;
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Table "public.manufactures"
Column | Type | Modifiers
-----------------+---------+----------------------------------------------------------------------
manufactureid | integer | not null default nextval('manufactures_manufactureid_seq'::regclass)
manufacturename | text | not null
Indexes:
"manufactures_pkey" PRIMARY KEY, btree (manufactureid)
Table "public.languages"
Column | Type | Modifiers
--------------+---------+----------------------------------------------------------------
languageid | integer | not null default nextval('languages_languageid_seq'::regclass)
languagename | text | not null
Indexes:
"languages_pkey" PRIMARY KEY, btree (languageid)
오류 메시지는'products.productlanguage'는 정수입니다. 정말로'languages.languagename'과 같은 것을 원하십니까? – mm759