За първи път чух, че ще науча за JOIN на SQL. Страхувах се, мислех, че заявка с „JOIN“ е сложна заявка, но след няколко дни работа с това. Виждам, че не е толкова трудно, но е толкова мощна опция. Когато трябва да получим информация от различни таблици.

Имаме INNER JOIN и JOIN, но няма разлика между тях. Разбира се, имаме повече опции като LEFT JOIN, RIGHT JOIN и SELF JOIN. Този път ще дам пример за JOIN и LEFT JOIN.

За да обясним използването на join, ще използваме следващите 3 таблици:

Както можете да видите, имаме 3 прости таблици, върху които да работим. Една книга може да има повече от един автор и един автор може да има повече от една книга.

Сега нашата цел е да знаем имената на авторите, които участват в конкретна книга „TINY PRETTY THINGS“.

Ако направим „ИЗБЕРЕТЕ име ОТ автор“, ще получим имената на всички автори, налични в БД.

Ако направим „ИЗБЕРЕТЕ име ОТ автор JOIN author_book ON (author_book.id_author = author.id)“. Ще получим името на всички автори, налични в DB, ​​която също има наличен идентификатор в таблицата author_book.

Ако направим „SELECT name FROM author JOIN author_book ON (author_book.id_author = author.id) WHERE author_book.id_book = (SELECT id FROM book WHERE book.name = „TINY PRETTY THINGS“)“. Ще вземем всички автори в DB, ​​които съответстват на идентификатора. С id в таблицата author_book и съпоставете book_id с id „TINY PRETTY THINGS“.

Следващата ни цел е да покажем имената на всички налични книги. Освен това трябва да покажем колко автори участват във всички книги.

Този път използваме LEFT JOIN, защото трябва да покажем всички книги и може да има книга, която няма автор. След това трябва да групираме по име, за да покажем колко автори са свързани с книгите.