Hallo Forum,
ich möchte nachfolgene SQL-Anweisung
SELECT
c.bezeichner,
m.wert,
m.code
FROM table1 m
JOIN table2 c
ON c.id = m.code
um weitere bezeichner erweitern, welche nicht in der table2 vorhanden
sind.
Gibt es eine Möglichkeit, weitere c.id und c.bezeichner, direkt in der
SQL-Abfrage mit anzugeben?
lg bragol
was willst du? Ich glaub keiner von uns hat das verstanden.
willst du weitere spalten anzeigen, die in tabelle 1 vorhanden sind?
möchtest du neue Zeilen im Ergebnis der Abfrage?
willst du Zeilen aus Tabelle 1 existieren, die keine Links in Tabelle 2
haben
Sorry für die missverständliche Problembeschreibung
Vlad Tepesch schrieb:> willst du Zeilen aus Tabelle 1 existieren, die keine Links in Tabelle 2> haben
genau das möchte ich erreichen.
In Tabelle 2 stehen die wichtigsten Bezeichner für die Codes aus Tabelle
1.
Genau die werden mir mit der Select-Anweisung als Code und mit dem
Klartextbezeichner angezeigt.
Unwichtigere (die, deren ID nicht in Tabelle 2 ist) werden nicht
angezeigt.
Ich würde nun gern noch alle weiteren Codes aus Tabelle 1 angezeigt
bekommen, wobei die Bezeichner hierfür nicht aus einer Tabelle gesucht
werden sollen, sondern, falls möglich, aus einer Liste, welche in der
SQL-Abfrage übergeben wird)
durch den LEFT JOIN in
SELECT
c.bezeichner,
m.wert,
m.code
FROM table1 m
LEFT JOIN table2 c
ON c.id = m.code
erhalte ich nun die komplette Liste der Codes mit den Bezeichnern aus
tabelle2, an den Stellen, wo
c.id = m.code
ist. An den übrigen Stellen, wo es keine Gleichheit zwischen c.id und
m.code gibt steht [null]. An diesen Stellen würde ich gern abhängig von
m.code ein JOIN nicht mit einer Tabelle, sondern mit einer in der
SQL-Anweisung verpackten Parameterliste durchführen
ein Stück weiter bin ich gekommen mit:
SELECT
c.bezeichner,
m.wert,
m.code,
CASE m.code
WHEN '31' THEN 'text1'
WHEN '32' THEN 'text2'
WHEN '33' THEN 'text3'
...
END
FROM table1 m
LEFT JOIN table2 c
ON c.id = m.code
Dies fügt mir die Bezeichner (text1, text2 und text3) als zusätzliche
Spalte ein.
Die Informationen sind nun alle da, leider noch auf 2 Spalten verteilt
(CASE-Spalte und Spalte c.bezeichner)
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.