タイトルに「python」という単語を含むデータベース内のすべての書籍を書き込む著者を表示するビューを作成しました。私が持っている問題は、複数の著者がいる場合は何も返さないということです。これはビューの作業コードです。集計関数(count)を使用してサブクエリを実装するかEXISTSを使用する必要がありますが、どのように動作させるかはわかりません。SQL - 一意な答えのみを返すクエリを選択します。
CREATE VIEW sole_python_author(author_first_name, author_last_name)
AS SELECT first_name, last_name
FROM authors, books
WHERE authors.author_id = books.author_id AND
title LIKE '%Python%'
GROUP BY authors.author_id;
「著者のテーブル:
CREATE TABLE "authors" (
"author_id" integer NOT NULL,
"last_name" text,
"first_name" text,
Constraint "authors_pkey" Primary Key ("author_id")
);
'ブック' テーブル:
CREATE TABLE "books" (
"book_id" integer NOT NULL,
"title" text NOT NULL,
"author_id" integer REFERENCES "authors" (author_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
"subject_id" integer REFERENCES "subjects" (subject_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE ,
Constraint "books_id_pkey" Primary Key ("book_id")
);
に 'パイソン' で本を書いた唯一の著者がある場合タイトル、それらの名前を返す必要があります。複数ある場合は、何も返さないはずです。 ご協力いただければ幸いです!
両方のテーブルにいくつかのデータを表示することはできますか?最高の場合、フィドルを準備してください:http://sqlfiddle.com/#!15 – dnoeth
@dnoethこの情報を含めるように質問を更新します – Brittany