/Select a database and run these demo data for test/
DROP TABLE IF EXISTS subjects;
CREATE TABLE IF NOT EXISTS subjects (
subject_id int(11) NOT NULL AUTO_INCREMENT,
subject text,
PRIMARY KEY (subject_id)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=latin1;
INSERT INTO subjects (subject_id, subject) VALUES
(1, 'Health'),
(2, 'Mathematics'),
(3, 'Music'),
(4, 'Geography'),
(5, 'Science'),
(6, 'Social Studies'),
(7, 'Algebra'),
(8, 'English'),
(9, 'Physics'),
(10, 'Journalism'),
(11, 'Geometry'),
(12, 'Dance'),
(13, 'Dramatics');
DROP TABLE IF EXISTS users;
CREATE TABLE IF NOT EXISTS users (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(100) NOT NULL,
rol varchar(100) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=97 DEFAULT CHARSET=latin1;
INSERT INTO users (id, username, rol) VALUES
(1, 'Zacharys', 'teacher'),
(2, 'Xanders', 'teacher'),
(3, 'Brendans', 'teacher'),
(4, 'Jermaines', 'teacher'),
(5, 'Danes', 'teacher'),
(6, 'Sonias', 'teacher'),
(7, 'Maliks', 'teacher'),
(8, 'Willas', 'teacher'),
(9, 'Jeromes', 'teacher'),
(10, 'Simons', 'teacher'),
(11, 'Ferriss', 'teacher'),
(12, 'Hoyts', 'teacher'),
(13, 'Jacobs', 'teacher'),
(14, 'Chaneys', 'teacher'),
(15, 'Megans', 'teacher'),
(16, 'Jamals', 'teacher'),
(17, 'Basias', 'student'),
(18, 'Briannas', 'student'),
(19, 'Logans', 'student'),
(20, 'Hardings', 'student'),
(21, 'Hasads', 'student'),
(22, 'Shelbys', 'student'),
(23, 'Lucians', 'student'),
(24, 'Alexanders', 'student'),
(25, 'Ayannas', 'student'),
(26, 'Yuris', 'student'),
(27, 'Carissas', 'student'),
(28, 'Tallulahs', 'student'),
(29, 'Dantes', 'student'),
(30, 'Alvins', 'student'),
(31, 'Salvadors', 'student'),
(32, 'Camerons', 'student'),
(33, 'Lances', 'student'),
(34, 'Cleos', 'student'),
(35, 'Abigails', 'student'),
(36, 'Colorados', 'student'),
(37, 'Leilanis', 'student'),
(38, 'Hops', 'student'),
(39, 'Zephrs', 'student'),
(40, 'Ivorys', 'student'),
(41, 'Tylers', 'student'),
(42, 'Jaspers', 'student'),
(43, 'Jelanis', 'student'),
(44, 'Clintons', 'student'),
(45, 'Marnys', 'student'),
(46, 'Jeromes', 'student'),
(47, 'Madisons', 'student'),
(48, 'Kaseems', 'student'),
(49, 'Jennifers', 'student'),
(50, 'McKenzies', 'student'),
(51, 'Dantes', 'student'),
(52, 'Chancellors', 'student'),
(53, 'Adeles', 'student'),
(54, 'Leroys', 'student'),
(55, 'Salvadors', 'student'),
(56, 'Marvins', 'student'),
(57, 'Lucians', 'student'),
(58, 'Ignatiuss', 'student'),
(59, 'Chantales', 'student'),
(60, 'Britanneys', 'student'),
(61, 'Leandras', 'student'),
(62, 'Odysseuss', 'student'),
(63, 'Lens', 'student'),
(64, 'Ivorys', 'student'),
(65, 'Hollys', 'student'),
(66, 'Drakes', 'student'),
(67, 'Clarks', 'student'),
(68, 'Dieters', 'student'),
(69, 'Kirstens', 'student'),
(70, 'Lesters', 'student'),
(71, 'Beverlys', 'student'),
(72, 'Tads', 'student'),
(73, 'Destinys', 'student'),
(74, 'Alisas', 'student'),
(75, 'Salvadors', 'student'),
(76, 'Hunters', 'student'),
(77, 'Julians', 'student'),
(78, 'Lucys', 'student'),
(79, 'Francescas', 'student'),
(80, 'Ayannas', 'student'),
(81, 'Macons', 'student'),
(82, 'Solomons', 'student'),
(83, 'Jeanettes', 'student'),
(84, 'Audras', 'student'),
(85, 'Victors', 'student'),
(86, 'Vernons', 'student'),
(87, 'Marvins', 'student'),
(88, 'Zenas', 'student'),
(89, 'Xanders', 'student'),
(90, 'Gareths', 'student'),
(91, 'Henrys', 'student'),
(92, 'Eagans', 'student'),
(93, 'Alexiss', 'student'),
(94, 'Jelanis', 'student'),
(95, 'Brennas', 'student'),
(96, 'Ivans', 'student');
DROP TABLE IF EXISTS users_subjects;
CREATE TABLE IF NOT EXISTS users_subjects (
users_subjects_id int(11) NOT NULL AUTO_INCREMENT,
user_id_fk int(11) DEFAULT NULL,
subject_id_fk int(11) DEFAULT NULL,
PRIMARY KEY (users_subjects_id),
KEY user_id_fk (user_id_fk),
KEY subject_id_fk (subject_id_fk)
) ENGINE=MyISAM AUTO_INCREMENT=201 DEFAULT CHARSET=latin1;
INSERT INTO users_subjects (users_subjects_id, user_id_fk, subject_id_fk) VALUES
(1, 48, 12),
(2, 19, 5),
(3, 5, 8),
(4, 69, 4),
(5, 73, 12),
(6, 85, 11),
(7, 33, 8),
(8, 20, 3),
(9, 2, 7),
(10, 30, 6),
(11, 21, 9),
(12, 50, 13),
(13, 14, 12),
(14, 79, 3),
(15, 36, 9),
(17, 72, 10),
(18, 89, 7),
(19, 94, 8),
(20, 56, 6),
(21, 16, 13),
(22, 4, 6),
(23, 29, 2),
(24, 20, 5),
(25, 76, 4),
(26, 53, 8),
(27, 48, 11),
(28, 10, 13),
(29, 13, 13),
(30, 84, 4),
(31, 12, 6),
(32, 46, 4),
(33, 20, 7),
(34, 19, 3),
(35, 62, 11),
(36, 84, 10),
(37, 62, 4),
(38, 94, 7),
(39, 29, 8),
(40, 73, 6),
(41, 75, 12),
(42, 50, 3),
(43, 47, 6),
(44, 73, 2),
(45, 52, 3),
(46, 28, 6),
(47, 81, 2),
(48, 96, 5),
(49, 23, 4),
(50, 57, 10),
(51, 2, 5),
(52, 36, 4),
(53, 29, 13),
(54, 88, 4),
(55, 43, 11),
(56, 69, 1),
(57, 16, 1),
(58, 18, 13),
(59, 20, 2),
(60, 25, 13),
(61, 75, 8),
(62, 32, 3),
(63, 34, 6),
(64, 47, 9),
(66, 15, 1),
(67, 53, 10),
(68, 39, 8),
(69, 91, 5),
(70, 82, 5),
(71, 65, 11),
(72, 86, 2),
(73, 61, 1),
(74, 34, 2),
(75, 64, 8),
(76, 65, 6),
(77, 10, 8),
(78, 78, 6),
(79, 33, 11),
(80, 69, 5),
(81, 51, 1),
(82, 56, 13),
(83, 6, 7),
(84, 77, 12),
(85, 23, 5),
(86, 53, 7),
(87, 71, 8),
(88, 3, 4),
(90, 6, 13),
(91, 54, 10),
(92, 1, 7),
(93, 13, 4),
(94, 55, 9),
(95, 88, 8),
(96, 22, 12),
(97, 19, 1),
(98, 93, 7),
(100, 95, 13),
(101, 8, 4),
(102, 13, 12),
(103, 41, 2),
(104, 6, 6),
(105, 54, 7),
(106, 5, 11),
(107, 58, 11),
(108, 1, 5),
(109, 20, 10),
(110, 66, 3),
(111, 28, 9),
(112, 21, 2),
(113, 91, 2),
(114, 74, 6),
(115, 50, 7),
(116, 70, 4),
(117, 47, 8),
(118, 48, 2),
(119, 20, 4),
(120, 32, 6),
(122, 25, 2),
(123, 42, 7),
(124, 89, 6),
(125, 94, 3),
(126, 27, 2),
(127, 90, 8),
(128, 95, 3),
(129, 86, 9),
(130, 65, 1),
(131, 14, 4),
(132, 61, 6),
(133, 33, 13),
(134, 43, 4),
(135, 17, 7),
(136, 69, 10),
(137, 29, 5),
(138, 43, 12),
(139, 90, 9),
(141, 88, 3),
(142, 45, 8),
(143, 52, 8),
(144, 56, 8),
(145, 72, 2),
(146, 15, 2),
(147, 25, 9),
(148, 91, 4),
(149, 16, 12),
(151, 62, 10),
(152, 64, 10),
(153, 17, 8),
(154, 55, 4),
(155, 19, 4),
(157, 14, 2),
(158, 7, 9),
(159, 90, 1),
(160, 45, 11),
(161, 55, 12),
(162, 35, 2),
(163, 1, 8),
(164, 41, 3),
(166, 28, 5),
(167, 43, 10),
(168, 91, 7),
(169, 77, 11),
(170, 38, 13),
(171, 3, 9),
(172, 72, 5),
(174, 80, 5),
(175, 46, 7),
(176, 87, 4),
(177, 76, 11),
(178, 1, 9),
(179, 34, 5),
(180, 46, 10),
(181, 86, 13),
(182, 53, 4),
(183, 48, 8),
(184, 5, 3),
(185, 58, 3),
(186, 6, 2),
(188, 81, 9),
(189, 75, 6),
(190, 40, 6),
(191, 52, 4),
(192, 65, 7),
(193, 52, 11),
(194, 59, 3),
(195, 10, 3),
(196, 64, 6),
(197, 33, 3),
(198, 3, 1),
(199, 96, 3),
(200, 66, 8);
/*
Here is My Query Where If Teacher id is '5'
and we have to find out the list of students.
Where rol has two values 'student' or 'teacher'
As we need only students so have added !=
Hope it will help you...
SELECT U.username, U.id, USM.subject_id_fk, S.subject
FROM users_subjects USM
LEFT JOIN users U ON USM.user_id_fk = U.id
LEFT JOIN subjects S ON USM.subject_id_fk = S.subject_id
WHERE USM.subject_id_fk IN (SELECT US.subject_id_fk FROM users_subjects US WHERE US.user_id_fk = '5')
AND U.rol != 'teacher'
*/
usersis a table andusers_subjectsis another table.