Mam takie tabele w bazie danych :
$sql1 = "CREATE TABLE IF NOT EXISTS prisoners ( prisoner_id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL default '', surname varchar(100) NOT NULL default '', alias varchar(100) NOT NULL default '', born varchar(100) NOT NULL default '', annotation text(5000) NOT NULL, PRIMARY KEY (prisoner_id) )ENGINE = InnoDB"; $sql3 = "CREATE TABLE IF NOT EXISTS cells ( cell_id int(11) NOT NULL AUTO_INCREMENT, floor int(5) NOT NULL, number int(10) NOT NULL, places int(5) NOT NULL, ward_id int(11) NOT NULL, PRIMARY KEY (cell_id), FOREIGN KEY (ward_id) REFERENCES wards(ward_id) )ENGINE = InnoDB"; $sql4 = "CREATE TABLE IF NOT EXISTS prisoners_cells ( prisoner_id int(11) NOT NULL, cell_id int(11) NOT NULL, PRIMARY KEY (prisoner_id, cell_id), FOREIGN KEY (prisoner_id) REFERENCES prisoners(prisoner_id), FOREIGN KEY (cell_id) REFERENCES cells(cell_id) )ENGINE = InnoDB";
Czyli tabele prisoners, cells i prisonners_cells,
Jak widac tabela prisoners_cells to tabela która łączy tabele prisoners i cells aby mozna bylo przypisac danego więźnia do celi, lub wielu wieźniów do jednej celi.
No i teraz powiedzmy ze chce wyświetlić nazwiska wieźniów którzy przebywają w celi o id = 11.
Po przejrzeniu kilku kursów i kulku próbach mam wątpliwości czy robić to za pomocą JOIN czy WHERE .... AND ... AND....
Moze mi ktos po krótce przedstawić kiedy sie stosuje dane rozwiązanie i dlaczego ?