0

私は4つのテーブルを持っています:

表1: batch_info with columns batch_id, brew_date, beer_style_name

表 2: brew_fermentation with columns batch_id (FK of batch_info), fermentor_name (FK of fermentor),. .

表 3: fermentor with columns, fermentor_name, tank_volume

表 4: Produced_amount with columns batch_id(FK of batch_info), produced_amount, date_transferred

ビールが醸造されると、表 1 と表 2 に入力されます。ビールの発酵が完了すると、データが表 4 の Produced_amount に入力されます。

作成したいのは、このようなテーブルです

Fermentor # |  Batch_ID  |  Tank_Size  |  Date_Brewed  | Beer Style

F10.1           13001         10           2013-01-12      IPA

F20.2           NULL         20             NULL          EMPTY

次のSQLステートメントがあります。

ただし、発酵槽テーブルのすべての発酵槽が表示されるわけではなく、現在何かが含まれている発酵槽のみが表示されます。上記のようにテーブルにデータを入力したいと思います。

SELECT brew_fermentation.fermentor_name AS "Fermentor #",
batch_info.batch_id AS "Batch Number", batch_info.beer_style_name AS
"Beer Style", batch_info.date_brewed AS "Date Brewed",
fermentor.tank_volume AS "BBLs"

FROM batch_info, fermentor, brew_fermentation

WHERE batch_info.batch_id = brew_fermentation.batch_id AND
brew_fermentation.fermentor_name=fermentor.fermentor_name AND

batch_info.batch_id NOT IN (SELECT produced_amount.batch_id FROM
produced_amount)

ORDER BY batch_info.date_brewed
4

1 に答える 1

0

に置き換えNOT INますNOT EXISTS

  ...
WHERE 
  batch_info.batch_id = brew_fermentation.batch_id 
  AND brew_fermentation.fermentor_name=fermentor.fermentor_name 
  AND NOT EXISTS (
    SELECT 1 FROM produced_amount WHERE batch_id = batch_info.batch_id
  )
于 2013-04-23T04:56:44.663 に答える