Witam
Eksperymentuje z zapytaniem przy użyciu JOINow a chce wyświetlić rekord z tabeli kursy gdy nic nie ma w tabeli sesja tzn:
Mamy oto takie dwie tabele w uproszczonej wersji
Tabela Kursy
- id
- title
Tabela Sesja
- id
- kurs_id (połączenie relacyjne)
- autor_id
- puchar
W tabeli kursy mamy takie rekordy:
1 | tytulkursu1
2 | tytulkursu2
3 | tytulkursu3
A w tabeli sesja takie:
1 | 1 | 1 | 1
2 | 2 | 1 | 0
3 | 1 | 2 | 1
4 | 2 | 2 | 0
Z danych można zaobserwować ze są dwie relacje nawiązane przez dwóch autorów a kursów jest trzy
chce teraz wyświetlić 3 kursy dla danego autora jednocześnie i tam gdzie relacja by była nawiązana to wyświetlił bym puchar a gdy jej nie ma to po prostu wyświetlił bym sam kurs ze jest do przejścia
przykładowy wynik z zapytania dla np autora=1 chciał bym osiągnąć taki:
1 | tytulkurs1 | puchar=1
2 | tytulkurs2 | puchar=0
3 | tytulkurs3 | null
CREATE TABLE courses (
id INT AUTO_INCREMENT PRIMARY KEY,
title varchar(255) NOT NULL default ''
) ENGINE = InnoDB DEFAULT CHARSET = 'utf8' DEFAULT COLLATE = 'utf8_polish_ci';
CREATE TABLE session (
id INT AUTO_INCREMENT PRIMARY KEY,
courses_id INT default '0',
author_id INT,
cup TINYINT default '0',
FOREIGN KEY (courses_id) REFERENCES courses(id)
) ENGINE = InnoDB DEFAULT CHARSET = 'utf8' DEFAULT COLLATE = 'utf8_polish_ci';
INSERT INTO `courses` (`id`,`title`) VALUES
(1,'tytulkursu1'),
(2,'tytulkursu2'),
(3,'tytulkursu3');
INSERT INTO `session` (`id`,`courses_id`,`author_id`,`cup`) VALUES
(1,1,1,1),
(2,2,1,0),
(3,1,2,1),
(4,2,2,0);