C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: pgAdminV


(過去ログ 97 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■58164 / inTopicNo.1)  pgAdminV
  
□投稿者/ こたろう (1回)-(2011/03/28(Mon) 13:12:13)

分類:[データベース全般] 

Windows XP
PostgreSQL
pgAdminVを使っています。

テーブル構造(staff,staff_lebel,department)

CREATE TABLE staff
(
id integer NOT NULL, -- ID
u_datetime timestamp with time zone, -- 設定更新日時
query_type character varying(10), -- 更新種別ID
staff_id integer NOT NULL, -- スタッフID
staff_code character varying(10), -- スタッフ番号
staff_name character varying(20), -- スタッフ名
post_code integer, -- 役職コード
department_number integer, -- 部署番号
email_address character varying(100), -- メールアドレス
login_code character varying(50), -- ログインコード
"password" character varying(50), -- パスワード
staff_level_id smallint, -- スタッフレベルID
CONSTRAINT staff_record_p PRIMARY KEY (id))

CREATE TABLE staff_level
(
staff_level_id smallint NOT NULL, -- スタッフレベルID
staff_level_name character varying(20), -- スタッフレベル
CONSTRAINT staff_level_p PRIMARY KEY (staff_level_id)
)

CREATE TABLE department
(
department_id serial NOT NULL, -- 部署ID
department_number integer, -- 部署番号
department_name character varying(50), -- 部署名称
CONSTRAINT department_p PRIMARY KEY (department_id)
)

ビュー定義
CREATE OR REPLACE VIEW staff_view AS
SELECT staff.id,
staff.u_datetime,
staff.query_type,
staff.staff_id,
staff.staff_code,
staff.staff_name,
staff.post_code,
staff.email_address,
staff.login_code,
staff.password,
department.department_id,
department.department_number,
department.department_name,
staff_level.staff_level_id,
staff_level.staff_level_name
FROM staff
JOIN department ON department.department_number = staff.department_number
JOIN staff_level ON staff_level.staff_level_id = staff.staff_level_id
ORDER BY staff.id;

このように定義されています。
staffには、いくつかのデータが登録されているので、
staff_viewのデータを見れば、
staffに登録されているデータが表示されると思ったのですが、
表示されません。
原因がなにかわからず困っています。
わかりますでしょうか?
よろしくお願いいたします。
引用返信 編集キー/
■58165 / inTopicNo.2)  Re[1]: pgAdminV
□投稿者/ shu (563回)-(2011/03/28(Mon) 13:26:09)
No58164 (こたろう さん) に返信

> JOIN department ON department.department_number = staff.department_number
> JOIN staff_level ON staff_level.staff_level_id = staff.staff_level_id
> ORDER BY staff.id;

JOINしているのでdepartment やstaff_level にもデータが必要ですが大丈夫ですか?
引用返信 編集キー/
■58167 / inTopicNo.3)  Re[2]: pgAdminV
□投稿者/ こたろう (2回)-(2011/03/28(Mon) 13:37:36)
No58165 (shu さん) に返信
> ■No58164 (こたろう さん) に返信
>
>> JOIN department ON department.department_number = staff.department_number
>> JOIN staff_level ON staff_level.staff_level_id = staff.staff_level_id
>> ORDER BY staff.id;
>
> JOINしているのでdepartment やstaff_level にもデータが必要ですが大丈夫ですか?

はい。
確認済みです。
引用返信 編集キー/
■58170 / inTopicNo.4)  Re[3]: pgAdminV
□投稿者/ shu (565回)-(2011/03/28(Mon) 13:44:06)
No58167 (こたろう さん) に返信

権限設定で見れないとかはどうでしょう?
引用返信 編集キー/
■58174 / inTopicNo.5)  Re[4]: pgAdminV
□投稿者/ こたろう (3回)-(2011/03/28(Mon) 13:56:45)
No58170 (shu さん) に返信
> ■No58167 (こたろう さん) に返信
>
> 権限設定で見れないとかはどうでしょう?
権限設定とはなんですか??

ほかのビューはみれているのですが・・・
引用返信 編集キー/
■58175 / inTopicNo.6)  Re[5]: pgAdminV
□投稿者/ shu (566回)-(2011/03/28(Mon) 14:28:46)
No58174 (こたろう さん) に返信
> ■No58170 (shu さん) に返信
>>■No58167 (こたろう さん) に返信
>>
>>権限設定で見れないとかはどうでしょう?
> 権限設定とはなんですか??
>
> ほかのビューはみれているのですが・・・
他のビューが見れていれば同じ設定をしていると思うので権限は大丈夫だとは思いますが
一応、見方、設定の仕方としてはビュー(ビュー以外も同じですが)を右クリックして
プロパティをクリックすると設定画面が表示されるので権限タブで確認、変更が可能です。
アクセスも出来て権限も問題なければSelectされる対象データがないのがほとんどだと思うので
テーブル間のデータ関連性をよく見て下さい。
引用返信 編集キー/
■58176 / inTopicNo.7)  Re[5]: pgAdminV
□投稿者/ Blue (42回)-(2011/03/28(Mon) 14:31:28)
JOINと指定すると、INNER JOINになりますが、

staff.department_numberと department.department_number が同じでかつ
staff.staff_level_id と staff_level.staff_level_id が同じ

レコードがほんとにありますか?


SQLで
SELECT * FROM staff INNER JOIN department ON staff.department_number = department.department_number
の結果が1レコード以上あるか、
SELECT * FROM staff INNER JOIN staff_level ON staff.staff_level_id = staff_level.staff_level_id
の結果が1レコード以上あるか
それぞれ確認してみてください。
あったとき、どちらにも含まれるstaffテーブルのレコードがありますか?

引用返信 編集キー/
■58177 / inTopicNo.8)  Re[6]: pgAdminV
□投稿者/ こたろう (4回)-(2011/03/28(Mon) 14:36:29)
shu さん
Blue さん
ありがとうございます。

staff.department_number = department.department_number
staff.staff_level_id = staff_level.staff_level_id

を確認したところ、
存在しないdepartment_numberを
参照しようとしていたことがわかりました。
お騒がせして申し訳ありませんでした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -