Sorunum var. Üç tablo var: T1, T2, T_target. T1 ve T2 tablosunun birçok farklı sütunu var, ancak her ikisinden de sadece ID sütununa ihtiyacım var. T_target tablosunun bir ID sütunu ve bir diğeri vardır: project_No.Birimle birlikteleme kurun
T1 ve T2'de de görünen bazı kimlikler vardır, ancak bunlar arasında çiftler oluşturmak istemiyorum, her iki tabloda da bir kimlik belirirse, T_target'a yalnızca bir kez eklenmelidir, ancak zaten T_target’ta iki kez harekete geçmesine izin verilir. Kriterlerin diğeri, yeni eklenen her kimliğin 'project_No' sütununda 21 değeri olması gerekir. Yani, ör .:
T1:
ID
2548
2566
2569
2843
2888
...
T2:
ID
2557
2566
2569
2700
2913
2994
3018
5426
...
T_target:
ID project_No
2976 1
3331 7
4049 7
5426 8
5915 3
6253 10
...
Ve sonuç İstiyorum se E:
T_target:
: YaniID project_No
2548 21
2557 21
2566 21
2569 21
2700 21
2843 21
2888 21
2913 21
2976 1
2994 21
2018 21
3331 7
4049 7
5426 8
5426 21
5915 3
6253 10
...
, ben bu kod ile denedim (T_target sütunların hem birincil anahtar oldukları için burada "NOT NULL" kriter olmak önemlidir)
insert into T_target (ID, project_No)
select (select ID
from T1 where ID is not NULL
union
select ID
from T2 where ID is not NULL), 21
select * from T_target
hata iletisi: Alt sorgu 1'den fazla değer döndürdü "Msg 512, Düzey 16, State 1, satır 2 . Alt sorgu, =,! =, <, < =,>,> = veya alt sorgu bir ifade olarak kullanıldığında alt sorguya izin verilmez. deyim sonlandırıldı"
Sonra yerine ilk SEÇ ve parantez DEĞERLERİ ifadeye çalıştım ama hata aynıdır
Orada da benzer bir sorundur.:. mySQL query: How to insert with UNION? ancak bu çözüm doesn o DEĞER ve SELECT'in arasındaki sözdizimi hatası gösterir çünkü 't benim için çalışıyor.
Lütfen bana yardım edin. teşekkür ederiz! Bu yapmalıyım
Ben sorunuzun en okumak ama mevcut sorgu için doğru sözdizimi düşünmüyor adres: Kimlik BOŞ birlik seçmek değil 'T1 den T_target (kimliği, project_No) seçeneğini Kimliği, 21 takın nerede ID, T2, ID NULL değil – Bridge