私は2つのテーブルを持っています。特定の日付(CreateDate)で内部結合レコードにしたい私が望むのは、何も参加できないときに記録を取らないことです。名前欄に参加します。ある日(CreateDate)には、両方のテーブルのNameによって1:1レコードが存在するはずです。そうでなければ、私は第1または第2のテーブルのいずれかから単独記録を取ることは望まない。下記の例では、ビューを作成します。参加するレコードがある場合にのみ内部結合
for all tables:
Id - PK/AI
Name - varchar
FieldX/FieldY - varchar
CreateDate - Datetime
表1
ID | Name | FieldX | CreateDate
表2
ID | Name | FieldY | CreateDate
表3
ID | Name | FieldX | FIeldY | CreateDate
例:
表1:
1 John value10 2017-09-03
2 Lili value20 2017-09-03
3 John value30 2017-10-12
4 Lili value40 2017-10-12
表2:今すぐ
1 John value50 2017-09-03
2 Lili value60 2017-09-03
3 John value70 2017-10-12
4 Lili value80 2017-04-01
私は一日2017-09-03
のために参加したいと言って、これは
表3:1日のために
John value10 value50 2017-09-03
Lili value20 value60 2017-09-03
:2017年10月12日 ではないであろう場合には、その日のために表2でリリにはレコードが何も取らされるレコード(およびその逆を意味しないことに注意表1にあるとTable2の同じような状況にあった - )私は記録を取りたくない
表3:
John value30 value70 2017-10-12
は何私がこれまで持っていることはこれです:
INSERT INTO Table3 (Name, FieldX, FieldY, CreateDate)
SELECT T1.Name, T1.FieldX, T2.FieldY, T1.CreateDate FROM Table1 As T1
INNER JOIN Table2 As T2 ON T1.Name=T2.Name
WHERE T1.CreateDate = '2017-10-12'
しかし、何かが私は正しい結果を得ることはありません間違っています。誰かが私が逃しているものを助けることができますか?
しかし、ジョンは両方のテーブルの '2017-10-12'のレコードを持っています。なぜあなたは2017-10-12で参加する記録がないと思いますか? –
https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-クエリ – Strawberry
@TimBiegeleisen正確に、Johnはその日の両方のテーブルに両方のレコードを持っています。しかし、リリーはそこにいません。それは正しいです – Unknown