2016-04-20 8 views
-1

で書き込み可能なマルチテーブル選択クエリを作成し、私はアクセス

スキーマを以下の表1を持つ2つのテーブルがある -

id, Serial Code, Hours 
xxxx-aa, 1 
xxxx-bb, 2 
yyyy-aa, 1 

表2 - 私の参加する今

Stage , Description 
aa, foo 
bb, bar 

はこのようなものです。

SELECT x.*, y.Description 
FROM table1 x LEFT JOIN 
    table2 y 
    ON MID(serial, 6, 2) = y.stage 

これは私に欲望の結果を与えました。ただし、読み取り専用です。私は..私は私が析出場合は表1の外部キーはとても参加条件は

SELECT x.*, y.Description 
FROM table1 x LEFT JOIN 
    table2 y 
    ON x.stage = y.stage 

ですが...非正規化せずに書き込み可能なクエリを作成するためのより良い方法がある書き込み可能なクエリを作成することができます知っているテーブル1?

ありがとうございました。

+0

SELECTステートメントに2番目のテーブルの主キーが必要です。しかし、それでもLEFT JOINは書き込み可能ではないかもしれません。 –

答えて

1

1つのアプローチは、テーブル1に[ステージ]と呼ばれる計算列を作成し、それをMID(シリアル、6,2)と定義することです。テーブルを埋めると、この列に自動的に値が設定され、テーブル1を「正規化しない」のと同じように簡単にクエリできます。

+0

計算フィールドについて私に知らせてくれてありがとう。私はあなたが言ったように、今はクエリが書き込み可能で、これは他の人が読んでいる場合の計算フィールド[リンク](http://allenbrowne.com/casu-14.html)に関するリンクです。 – Eddy