Kod
TABELA A
IDJob nazwa
------------------------------------
1 robotnik
2 sprzedawca w sklepie
3 kierowca
4 malarz
8 modelka
10 pomoc w hospicium
TABELA B
IDJobG IDGracz IDJob
------------------------------------
1 36 3
2 34 2
IDJob nazwa
------------------------------------
1 robotnik
2 sprzedawca w sklepie
3 kierowca
4 malarz
8 modelka
10 pomoc w hospicium
TABELA B
IDJobG IDGracz IDJob
------------------------------------
1 36 3
2 34 2
Co chciałbym osiągnąć?
Wyświetlić wszystkie rekordy z tabeli A oraz dopasować do nich wybranego gracz (IDGracz=36):
Kod
TABELA A
IDJob nazwa IDGracz
---------------------------------------------
1 robotnik NULL
2 sprzedawca w sklepie NULL
3 kierowca 36
4 malarz NULL
8 modelka NULL
10 pomoc w hospicium NULL
IDJob nazwa IDGracz
---------------------------------------------
1 robotnik NULL
2 sprzedawca w sklepie NULL
3 kierowca 36
4 malarz NULL
8 modelka NULL
10 pomoc w hospicium NULL
Próby z JOINami przynosiły mi taki efekt że otrzymywałem wynik zbliżony do powyższego, przy czym odpadał mi rekord z IDJob=2 bo dla tego zawodu występuje już rekord w tabeli 2.
SELECT * FROM tabelaA AS ta LEFT JOIN tabelsB AS tb ON ta.IDJob=tb.IDJob WHERE tb.IDGracz=36 OR tb.IDGracz IS NULL
wynik zapytania:
Kod
TABELA A
IDJob nazwa IDGracz
---------------------------------------------
1 robotnik NULL
3 kierowca 36
4 malarz NULL
8 modelka NULL
10 pomoc w hospicium NULL
IDJob nazwa IDGracz
---------------------------------------------
1 robotnik NULL
3 kierowca 36
4 malarz NULL
8 modelka NULL
10 pomoc w hospicium NULL
Może się poprostu biorę za to od złej strony. Ktoś naprowadzi?
Problem rozwiązany z pomocą kolegi:
SELECT * FROM tabelaA AS ta LEFT JOIN ( SELECT * FROM tabelaB AS tb WHERE IDGracz =36 ) AS tc ON ta.IDJob = tc.IDJob