Problem mit SELECT und IF

KoMtuR

Erfahrenes Mitglied
Ich habe eine Tabelle, wo 2 Spalten wichtig sind: Team1, Team2.

Diese Teams können Verträgen untereinander schließen und somit werden diese Verträge in die Tabelle eingetragen.

Nun möchte ich übersichtlich die Verträge eines Teams auslesen lassen. Aber mein Problem besteht darin, dass das Team entweder in der Spalte Team1 oder Team2 stehen kann. Nun möchte ich aber auch gleich mittels INNER JOIN den Namen des anderen Teams auslesen.

Hier ist meine SQL-Anweisung
PHP:
SELECT team.name, team.tag, IF(vertrag.team1=$teamid, vertrag.team2, vertrag.team1) AS `teamid` FROM `vertrag` INNER JOIN `team` ON team.id = teamid WHERE (vertrag.team1 = '$teamid' OR vertrag.team2 = '$teamid') AND `typ` = 'bnd'

Ich hab schon alles mögliche Versucht aber mit den IF-Anweisungen in SQL bin ich noch nie klar gekommen :)

Danke für eure hilfe
 
also, ich bin zwar nun nicht gerade n guru in sql aber soviel wie ich weiß, kann man in SELECT-statements keine IF-anweisungen reinsetzen. jedenfalls hab ich das bisher noch nie gesehen.

lass mich aber gerne des besseren belehren.;)
 
Ich habs schon gesehen im SQL-Buch von kannegieser. Also muss es auch gehen. Der bringt mir nur eine Fehlermeldung in Bezug auf das "teamid". Aber irgendwie muss ich doch entscheiden können, welche Spalte er für das INNER JOIN verwenden soll
 
Zuerst eine Gegenfrage - wenn nur in einem von den beiden Feldern
team 1 oder team2 eine Id drin sein kann was ist dann im anderen Feld?

ich gehe mal von null aus - spich nix

dann geht die if Abfrage so:

ifnull(vertrag.team1,vertrag.team2,vertrag.team1)

Bedeutet wenn kein Eintrag in team1 ist, dann nimm den aus team2

So zur select abfrage:
ich glaube nicht das eine If abfrage im on Teil einer Sqlanweisung erlaubt, ist aber
das kannst du ja mal testen:

select * from vertrag inner join team on team.id = ifnull(.....)
 
Zurück