anfängerbub: frage abfrage

ich habe zwei Tabellen:

-fights
ID  | fighter_id_1| fighter_id_2
1   | 232         | 343
2   | 232         | 212
3   | 533         | 323

  • fighters
    ID | fighter_name | wins | knockouts
    232| michel k     |  3   | 0
    533| the terminator 3    |1
    212| rocky        | 2    |2
    343| pitbull      |  32  |3
    323| sundance kid | 1    |1

Ich hätte jetzt gerne alle Daten für den Kampf mit der ID 2

also:
michel K (wins 3, 0 Knockouts) vs Rocky (wins2, 2 Knockouts)

Mit einem Join will das irgendwie nicht gehen:

  
SELECT fights.fighter_id_1 as f1, fights.fighter_id_2 as f2, fighters.fighter_name as name FROM fights LEFT JOIN fighters ON [.. ]  

weil ich dann ja nur einen figther_name habe...?

Oder muss ich hier tatsächlich 2 Abfragen machen?

  
SELECT fighter_id_1, fighter_id_2 from fights where id=2;  
SELECT fighter_name, wins, knockouts from fighters where id=232 OR id=212  

Oder eventuell mit einem Subselect? Das würde vermutlich auch gehen.

  1. ach so, es ist ausdrücklich erwünscht, dass fighter_1_id und fighter_2_id gleich sind. ES kann also Michel K gegen Michel K kämpfen.

    1. ach so, es ist ausdrücklich erwünscht, dass fighter_1_id und fighter_2_id gleich sind. ES kann also Michel K gegen Michel K kämpfen.

      Spiegelfechter

      Linuchs

      1. ach so, es ist ausdrücklich erwünscht, dass fighter_1_id und fighter_2_id gleich sind. ES kann also Michel K gegen Michel K kämpfen.

        Spiegelfechter

        Trainingszwecke, genau darum gehts :)
        bis denne

  2. Hi,

    Mit einem Join will das irgendwie nicht gehen:

    SELECT fights.fighter_id_1 as f1, fights.fighter_id_2 as f2,

    fighters.fighter_name as name FROM fights LEFT JOIN fighters ON [.. ]

    
    > weil ich dann ja nur einen figther\_name habe...?  
      
    Wenn du mit \*einem\* JOIN den Wert \*einer\* Spalte „übersetzen” lassen kannst … ja wie könnte das dann wohl für den Wert einer weiteren (sprich \*zwei\*ten) Spalte funktionieren …?  
      
    MfG ChrisB  
      
    
    -- 
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    
    1. Hi Chris,

      Wenn du mit *einem* JOIN den Wert *einer* Spalte „übersetzen” lassen kannst … ja wie könnte das dann wohl für den Wert einer weiteren (sprich *zwei*ten) Spalte funktionieren …?

      Das ist mir schon klar, aber hier hat er sich immer darüber mockiert, dass der Tabellenname ambigious sei. Zweimal JOIN geht nicht auf die selbe Tabelle, ich musste einen alias vergeben. Alles klar.