Hey, also habe ich eine Frage, die mich überrascht, ich kann nicht leicht eine Antwort für finden. Im Grunde versuche ich nur einer Tabelle beizutreten und nur wenn ein Wert gleich 1 ist. Ich habe versucht, Fallanweisungen zu verwenden, aber das wird nicht funktionieren, also bin ich in einer Sackgasse und würde einige Vorschläge sehr schätzen.Join nur wenn ein Wert gleich 1 ist
Grundsätzlich habe ich eine übergebene Tabelle @courseSection und eine lokale Variable @isSelect all = 0. So jetzt möchte ich überprüfen, ist ein -1 in der @ courseSection Tabelle.
Pseudo-Code:
If @courseSection contains -1 then
@isSelectAll = 1
end
if @isSelect all = 1 then
inner join course s on c.id = cs.id
end
Das ist alles in einer zu Select-Anweisung. Hat jemand einen Vorschlag, wie das zu erreichen ist und danke im Voraus für die Hilfe.
Sie könnten es in Ihrem 'ON' auf irgendeine Weise einschließen -' INNER JOIN Kurs s ON c.id = cs.id UND @isSelectAll = 1'. Das heißt, Sie müssen dann eventuell den Join zu einem 'LEFT JOIN' mit einem' IS NOT NULL' ändern, da Ihr 'INNER JOIN' 0 Einträge findet, wenn' @isSelectAll <> 1' ist. – Santi
Oracle? MS-SQL? MySQL? Benötigen Sie weitere Informationen. – gdoron