1 ; 1 ; t
1 ; 1000 ; t
1 ; 1001 ; t
1 ; 1002 ; t
1 ; 1003 ; t
1 ; 100100 ; f
SELECT * FROM b WHERE nachKnoten=1001;
1 ; 1001 ; t
1000 ; 1001 ; t
1001 ; 1001 ; t
1002 ; 1001 ; f
1003 ; 1001 ; f
100100 ; 1001 ; t
Diese beiden Ergebnisse will ich jetzt folgend in Spalten haben:
SELECT ; 2. SELECT
1 ; 1 ; t ; 1 ; 1001 ; t
1 ; 1000 ; t ; 1000 ; 1001 ; t
1 ; 1001 ; t ; 1001 ; 1001 ; t
1 ; 1002 ; t ; 1002 ; 1001 ; f
1 ; 1003 ; t ; 1003 ; 1001 ; f
1 ; 100100 ; f ; 100100 ; 1001 ; t
Leider finde ich keine Art die beiden Sachen zu JOINEN… ein UNION kommt leider nicht in betracht, da die Daten mit einer Aggregat-Funktion dann bearbeitet werden sollen:
SELECT bool_or(a.verbunden AND b.verbunden) FROM ....
Weiß jemand einen Rat für mich? Eventuell bin ich auch gerade ziemlich blind. Grund der ganzen Sache ist eigentlich eine Matrix-Multiplikation anhand der boolean-Werte.
Suche auch noch eine gute Anleitung wie ich eine Funktion in C schreibe und dort ein ResultSet übergeben bekomme.
Ich habe leider keine Spalte zum joinen dort… Ich wüsste auch nicht in welcher Weise ich dort joinen sollte damit genau das Ergebnis rauskommt. Hab’ schon einiges versucht und es kamen immer zuviele und falsche Zeilen raus.
Naja, der Cross-Join würde sicherlich das Gesuchte beinhalten. Fragt sich nur, ob das Ding so besonders schnell ist und wie die WHERE für mich da aussehen muss.
Eigentlich will ich immer nur von der einen Tabelle alle mit dem selben vonKnoten und von der anderen Tabelle alle mit dem selben nachKnoten. Und die beiden Sachen direkt nebeneinander - ist immer eine quadratische Matrix. Ich selektiere also immer eine “Zeile” der Matrix aus der einen Tabelle und eine “Spalte” aus der anderen Tabelle.
Es klappt wunderbar mit einem normalen JOIN wenn vonKnoten und nachKnoten die selben sind (also beides z.B. 1). Aber sobald z.B. 1 und 1001 gesucht ist, klappt das natürlich nicht mehr (da falsches JOIN).
Wie gesagt… Sinn des Ganzen ist eine binäre Matrix-Multiplikation.