2017-12-08 20 views
0

上のエラー「FROM句エントリを行方不明」:Postgresの私はPostgresの中で、このクエリを使用しようとしていますクエリ

SELECT ean, count(nif) 
FROM produto P, fornece_sec F 
WHERE P.ean = F.ean 
GROUP BY ​P.ean 
HAVING count(nif) > 1; 

私はこのエラーを取得する:

ERROR:コラム参照 "EANは" 曖昧 ですLINE 1:

SELECT P.ean, count(nif) 
FROM produto P, fornece_sec F 
WHERE P.ean = F.ean 
GROUP BY ​P.ean 
HAVING count(nif) > 1; 

:私は、クエリを変更する場合は、EAN、カウント数(NIF)

を選択別のエラーが表示されます。

ERROR:テーブルのFROM句エントリを行方不明 "P" LINE 4:GROUP P.ean

して、これらの二つのテーブルがこのように作成されます。

create table produto (
ean char(13) not null unique, 
design varchar(255) not null, 
categoria varchar(80) not null, 
forn_primario char(9) not null, 
data date not null, 
constraint ean_size CHECK (Length(ean)=13), 
constraint pk_produto primary key(ean), 
constraint fk_produto_categoria foreign key(categoria) references categoria(nome) ON DELETE CASCADE, 
constraint fk_produto_fornecedor foreign key(forn_primario) references fornecedor(nif)); 

create table fornece_sec (
nif char(9) not null, 
ean char(13) not null, 
constraint pk_fornece_sec primary key(nif, ean), 
constraint fk_fornece_sec_fornecedor foreign key(nif) references fornecedor(nif), 
constraint fk_fornece_sec_produto foreign key(ean) references produto(ean) ON DELETE CASCADE); 

注:fornece_secテーブルのnif属性は、製品テーブルのn_primario属性と同じタイプです。

+1

あなたの 'GROUP BY'はASCIIではなく、ユニコードを含んでいるようです。おそらくPはPのような非ASCII文字です。 – tonypdmtr

+0

ここでは、sql-server、postgresql **、** mysqlというタグを付けました。彼らはすべて異なった製品です。あなたは..を使っていますか? – Larnu

+1

正しくタグ付けしてください。 MySQL <> Postgres <> SQL Server – Eric

答えて

0

これはおそらく、それとは何の関係もありませんが、多分INNER JOINを宣言明示的に試してみてください。

SELECT P.ean, count(nif) 
FROM produto P 
INNER JOIN fornece_sec F ON P.ean = F.ean 
GROUP BY ​P.ean 
HAVING count(nif) > 1; 
0

トミーは正しかった:

「あなたのGROUP BYはユニコードではなく、ASCIIが含まれているように思われるかもしれません。 PはPのような非ASCII文字です。

関連する問題