Ilja: SQL über 3 Tabellen mittels Join (mysql-db)

Beitrag lesen

moin Vinz,

SELECT

ID,
    Heim,
    Gast,
    ToreHeim,
    ToreGast,
    UserID,
    UserName
FROM
    spieltag
CROSS JOIN
    users
ON
    aktiv = true AND spieltag = 1

  
ich kann mich täuschen, aber müsste hier nicht ein INNER JOIN anstelle des CROSS JOIN stehen ?  
  

> ~~~sql

SELECT  

>     st.ID,  
>     st.Heim,  
>     st.Gast,  
>     st.ToreHeim,  
>     st.ToreGast,  
>     u.UserID,  
>     u.UserName,  
>     t.TippToreHeim,  
>     t.TippToreGast  
> FROM (  
>     spieltag st  
> JOIN                  -- auf CROSS kann man verzichten  
>                       -- dann verstehen's mehr SQL-Dialekte  
>     users u  
> ON  
>     aktiv = true AND spieltag = 1)  
> LEFT JOIN  
>     spieltagtippen t  
> ON  
>     u.UserID = t.IDSpieler  
> AND  
>     st.ID = t.IDSpiel  
> 

~~~ [1]  
  
hmm, ich habe leider keine datenbank, um es zu testen, aber zum einen wundert mich, dass du für die unterabfrage in der FROM klausel keinen aliasnamen brauchst und die inneren alias namen außen benutzen kannst. aber scheint offenbar so zu gehen.  was mich aber noch mehr verwundert, fehlt da in der LEFT JOIn Bedinung nicht nich eine bedinung, nämlich der bgleich zwischen spieltag und spieltagtippen  ?  
  
Ilja