Autor Zpráva
n3tman
Profil
Zdravím, nevěděl jsem jak daný problém lépe nazvat.

Mám následující tabulky (zjednodušeně):

tabulka casting - obsazení osob do rolí
id_casting  | id_persons | id_role
 -----------+------------+-----------
     1      |    4       |   6
     2      |    8       |   3
     3      |    22      |   5
     4      |    8       |   11


tabulka roles - výčet rolí přiřazených k jednotlivým projektům
id_roles    | id_projects |   name
 -----------+-------------+-----------
     1      |    1        |   herec11
     2      |    1        |   herec4
     3      |    3        |   režisér
     4      |    5        |   herec8


tabulka persons - výčet osob
id_persons  |  first_name |  last_name
 -----------+-------------+-----------
     1      |    Petr     |   Plachý
     2      |    Jan      |   Dvořák
     3      |    Kateřina |   Nejezchlebová
     4      |    Marek    |   Starý


tabulka projects (teď nepodstatné)

Když chci vypsat všechny role přiřazené například k projektu s ID 1, použiju

SELECT
	[r].*,
	[p].[first_name],
	[p].[last_name]
FROM
	[casting] AS [cast]
LEFT JOIN
	[roles] AS [r] ON ([cast].[id_role]=[r].[id_roles])
LEFT JOIN
	[persons] AS [p] ON ([cast].[id_persons]=[p].[id_persons])
WHERE
	[r].[id_projects] = 1
ORDER BY [r].[id_roles]

(psáno pro dibi)

Dostanu však pouze role, které byly obsazeny (mají záznam v tabulce casting), ne i ty volné. Jak na výpis všech rolí z projektu i se všemi dalšími detaily?
Kajman_
Profil *
    [casting] AS [cast]
RIGHT JOIN
    [roles] AS [r] ON ([cast].[id_role]=[r].[id_roles])
n3tman
Profil
Kajman:
Díky!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: