MSSQL Join Problem
Umlüx 06.11.2017 - 15:52 1619 4
Umlüx
Huge Metal Fan
|
und wieder wend ich mich hilfesuchend mit einen saudepperten problem an euch.. ich hab eine Tabelle A num text
=== ====
1 foo
2 bar
3 blubb
4 flubb
und eine Tabelle B num code
=== ====
1 722
2 730
3 VO
4 852
5 766
gibts irgend einen trick um die beiden zu joinen ABER die row mit code "VO" auszulassen? er müsst also z.b. die dritte row von A mit der vierten von B joinen.
|
Saddamski
Addicted
|
und wieder wend ich mich hilfesuchend mit einen saudepperten problem an euch..
ich hab eine Tabelle A
num text
=== ====
1 foo
2 bar
3 blubb
4 flubb
und eine Tabelle B
num code
=== ====
1 722
2 730
3 VO
4 852
5 766
gibts irgend einen trick um die beiden zu joinen ABER die row mit code "VO" auszulassen? er müsst also z.b. die dritte row von A mit der vierten von B joinen. anhand von was willst du sie verjoinen? num geht ja offensichtlich nicht da du sachen weglassen willst. kannst du anhand von row_num verjoinen?kA obs in MSQL genau so läuft - so wäre die "logik": select a.num, a.text, b.code from
(select num, text, rownum as rows_a from a
) a,
(select num, code, rownum as rows_b from b
where code != 'VO') b
where rows_a = rows_b;
edit@obermotz: ist rownum so dermaßen umständlich mit mssql - bist deppad edit2: nochmal korrigiert damit was funktionierendes dasteht(is halt oracle und nicht mssql)
Bearbeitet von Saddamski am 06.11.2017, 16:48
|
Obermotz
Fünfzylindernazi
|
SELECT a.text, b.code
FROM (SELECT text, row_number() over (order by num) as row_num
FROM A) A
JOIN
(SELECT code,row_number() over (order by num) as row_num
FROM B where b.code NOT IN 'VO') B
on A.row_num=B.row_num
ORDER BY A.text, B.code
|
Umlüx
Huge Metal Fan
|
*hirngreif* wenn mans liest ist es so logisch und eindeutig... DANKE!
|
Obermotz
Fünfzylindernazi
|
Ja, die MSSQL Syntax ist zum Teil etwas ungewöhnlich, ich bin auch eher ein Oracle Fanboy..
|