2017-12-05 1 views
0

Ich habe zwei Tabellen erhalten:Wie mehrere Werte

  • Tabelle request: Inhalt der Anforderungsdaten
  • Tabelle participant: Inhalt der Mitarbeiter, die

Tabelle Request eingeladen:

ID_Request emp_no invited_by 
------------------------------- 
BTR1370  101240 101240 
BTR1371  100259 101240 
BTR1372  100308 101240 
BTR1373  100626 101240 

Tabelle :

ID_Participant ID_Request participant_no invited_by 
------------------------------------------------------ 
1    BTR1370  100259   101240 
2    BTR1370  100308   101240 
3    BTR1370  100626   101240 

Ich will diese Tabellen verknüpfen, und erwartet, dass dieses Ergebnis hier bekommen:

ID_Request participant_no invited_by 
--------------------------------------- 
BTR1370  100259   101240 
BTR1370  100308   101240 
BTR1370  100626   101240 
BTR1371  100259   101240 
BTR1371  100308   101240 
BTR1371  100626   101240 
BTR1372  100259   101240 
BTR1372  100308   101240 
BTR1372  100626   101240 
BTR1373  100259   101240 
BTR1373  100308   101240 
BTR1373  100626   101240 

Wie kann ich beitreten, diese beiden Tabellen? Ich bin mit SQL Server 2012.

Ich bin sehr dankbar für Ihre Hilfe

+2

Ich denke, Sie suchen nach 'CROSS JOIN'. –

+0

Ich glaube nicht. weil ich habe versucht und zeige viele Ergebnis, dass ich nicht erwartet werde aber, danke für Ihre Antwort – wira

+0

Warum nicht? Wie wäre es, wenn Sie erklären, was Sie in Worten tun wollen, nicht nur mit vagen Probedaten? –

Antwort

0

Verwendung Quer

select TR.ID_Request,TR.participant_no,TR.invited_by from Table_Request TR cross join Table_Participant TP where TR.invited_by = TP.invited_by 
+0

Okay danke @Girija – wira

0

Verwendung kommen sollte CROSS JOIN wie Gordon Linoff verwenden sagt: Sie kann eine where-Klausel damit es sich wie ein innerer Join verhält - also. wo a.invited_By = b.invited_by

declare @myt1 table (id_request nvarchar(50),emp_no int, invited_by int) 
insert into @myt1 
values 

('BTR1370',  101240  ,101240), 
('BTR1371',  100259  ,101240), 
('BTR1372',  100308  ,101240), 
('BTR1373',  100626  ,101240) 

declare @myt2 table (id_participant int,id_request nvarchar(50),participant_no int, invited_by int) 
insert into @myt2 
values 

(1  ,'BTR1370',  100259 , 101240), 
(2  ,'BTR1370',  100308 , 101240), 
(3  ,'BTR1370',  100626 , 101240) 

select a.id_request,b.participant_no,a.invited_by from @myt1 a 
cross join @myt2 b 

order by a.id_request 

Ergebnis

enter image description here

+0

Okay danke @plaidDK – wira

0

Wenn ein CROSS JOIN nicht das, was Sie nach, und nicht mehr Beispieldaten in der Lage zu sehen, kann ich nehmen Sie an, Sie möchten nur eine innere Verbindung

SELECT r.ID_Request, p.participant_no, r.invited_by 
FROM Table_Request r 
    INNER JOIN Table_Participant p 
     ON r.ID_Request = p.ID_Request 
+0

Okay danke @Stefan – wira