Mysql join опис, приклад використання команди і рекомендації

Розробка баз даних інтернет-ресурсів практично нічим не відрізняється від стандартних баз даних, розроблених в системі MS SQL SERVER. Як правило, для такого роду ресурсів використовується мова MY SQL, хоча його можна застосовувати і до розробки стандартних програмних продуктів, для локального використання. Але мова в статті піде не про це.

Mysql join опис, приклад використання команди і рекомендації

Часто при роботі з базами даних в кожній з мов стоїть завдання зробити вибірку даних для виведення в різноманітні звіти, графіки і так далі. Як правило, при реалізації такого роду завдань доводиться використовувати не одну, а кілька таблиць, об'єднуючи їх в один запит, значно ускладнюючи його конструкцію. При цьому необхідно враховувати те, як повинні будуть виводитися дані, як будуть «підтягуватися» таблиці і який результат буде максимально прийнятним для програміста. Для вирішення таких завдань використовується одна зі стандартних конструкція мови MySQL - Join.

Поняття слова Join

Мови розробки баз даних, неважливо, що саме це за мова, за основу беруть стандартні слова з англомовних словників (саме тому за умови, що ви знаєте англійську мову, вам буде набагато простіше працювати з таблицями). Для реалізації підключення таблиць в вибірку взято таке ж слово - Join. У мові програмування баз даних Використовується My SQL. Переклад цього службового слова в точності такий же, як і в самій мові - «об'єднання».

Інтерпретація конструкції MySQL - Join, причому будь-який з них, буде точно такий же. Якщо розшифрувати призначення конструкції, а саме схему її роботи, то отримаємо такі значення: конструкції дозволять зібрати потрібні поля з різних таблиць або вкладених запитів в одну вибірку.

Види конструкцій для об'єднання

Mysql join опис, приклад використання команди і рекомендації

Якщо програмісту необхідно зібрати вибірку з декількох таблиць і він знає, які ключові поля в них і які саме дані необхідні для звіту, то можна скористатися однією з основних конструкцій об'єднання, для досягнення бажаного результату. Основних конструкцій (для об'єднання таблиць) чотири:

Залежно від поставленого завдання, кожна зі стандартних конструкцій буде давати різні результати, що дозволить отримувати звіти за різними параметрами в короткий термін.

Створення і заповнення таблиць для подальшого використання

Перед тим як почати, наприклад, розглядати механізми роботи з конструкціями об'єднання даних, варто підготувати кілька таблиць, з якими ми будемо надалі працювати. Це допоможе наочно показати всі принципи роботи операторів, крім того, таким чином новачки легше засвоять всі ази програмування таблиць.

У першій таблиці будуть описані деякі предмети, з якими людина постійно зустрічається протягом свого життя.

Mysql join опис, приклад використання команди і рекомендації

У другій таблиці опишемо деякі властивості об'єктів з першої таблиці, щоб можна було в подальшому з ними працювати.

Mysql join опис, приклад використання команди і рекомендації

В цілому двох таблиць буде досить, щоб на прикладі показати їх роботу. Ось тепер можна приступати до практичного розгляду наших конструкцій.

Використання Inner Join

При використанні конструкції MySQL - Join Ineer варто враховувати деякі її особливості. Дана конструкція дозволить вибрати з обох таблиць тільки ті записи, які є і в першій і в другій таблиці. Як це працює? У першій таблиці у нас є головний ключ - ID, який вказує на порядковий номер записів в таблиці.

При створенні другої таблиці, цей же ключ використовується як порядковий номер, приклад можна подивитися на малюнках. При виборі даних оператор Select визначить в результаті тільки ті записи, порядкові номери яких збігаються - значить, вони є і в першій і в другій таблиці.

При використанні конструкції потрібно розуміти, які саме дані необхідно отримати. Найпоширеніша помилка, особливо у початківця програміста баз даних, це нераціональне і неправильне використання конструкції Inner Join. Як приклад, MySQL Inner Join, можна розглянути скрипт, який поверне нам з раніше описаних і заповнених таблиць інформацію про предмети і їх властивості. Але і тут може бути кілька способів використання конструкції. В цьому плані My SQL дуже гнучкий мову. Отже, можна розглянути приклади використання MySQL Inner Join.

Об'єднання таблиць без вказівки, будь-яких параметрів. У цьому випадку ми отримаємо результат такого плану:

Mysql join опис, приклад використання команди і рекомендації

Якщо вкажемо через службове слово Using, що обов'язково потрібно враховувати головні ключі записів в таблицях, то результат вибірки кардинально зміниться. У цьому випадку ми отримаємо вибірку, яка поверне тільки ті рядки, які мають однакові головні ключі.

Mysql join опис, приклад використання команди і рекомендації

Можливий ще й третій варіант використання конструкції, коли в запиті через слово «on» вказуються поля, за якими має відбуватися об'єднання таблиць. В такому випадку вибірка поверне наступні дані:

Mysql join опис, приклад використання команди і рекомендації

Особливості використання Left Join

Якщо розглядати ще один спосіб об'єднання таблиць за допомогою конструкції MySQL - Join, можна помітити різницю в даних, які виводяться. Таким механізмом є конструкція Left.

Використання конструкції Left Join MySQL має деякі особливості і, як і Inner, вимагає чіткого розуміння результату, який необхідно отримати.

В даному випадку спочатку будуть обрані всі записи з першої таблиці, а в подальшому до них будуть приєднані записи з другої таблиці властивостей. При цьому, якщо в першій таблиці є запис, наприклад, "табурет", а в другій таблиці немає жодного властивості для неї, то оператор Left виведе навпаки цього запису значення null, що говорить програмісту про те, що ознак з цього виду предмета немає .

Використання цієї конструкції дозволять визначати, по яких полях або, наприклад, товарам в магазині не виставлена ​​ціна, гарантійний термін і так далі.

Приклад використання Left

Для розгляду на практиці оператора конструкції Left Join MySQL використовуємо раніше описані таблиці. Скажімо, необхідно вибрати весь список товарів, які є в магазині, і перевірити по яким з них не проставлені ознаки або властивості. В такому випадку вибірка виведе на екран всі товари, а за тими, у яких немає властивості, будуть проставлені порожні значення.

Mysql join опис, приклад використання команди і рекомендації

Використання Where в конструкції Join

Як параметр, об'єднання може включати не тільки вказівки полів, за якими необхідно провести підключення таблиць, але може і включати оператор умови Where.

Для прикладу розглянемо скрипт, який повинен повернути нам тільки ті записи, по яких не проставлено ознака. В такому випадку в конструкцію Join необхідно додати оператор умови і вказати, що саме потрібно повернути як результат.

При використанні в MySQL Join - Where потрібно чітко розуміти, що будуть показані тільки ті записи, до яких відноситься зазначена умова, і вибірка тоді буде виглядати наступним чином:

Такі запити дозволяють робити вибірки по конкретних даних, які відносяться до вибраного програмістом умові. Таких умов можна вказувати кілька, максимально при цьому уточнюючи параметри вибору даних з об'єднаних таблиць.

Використання Join для зміни даних в таблицях

Конструкція Join, по суті, універсальна. Вона дозволяє не тільки робити різноманітні вибірки, а й підключати в запити від однієї до кількох таблиць, вводити додаткові умови до вибірки. Конструкцію можна також використовувати і для інших операцій з даними. Так, Join можна використовувати для зміни даних в таблиці. Вірніше сказати, для уточнення умов в таблиці або ж в тих випадках, якщо потрібно оновити дані в декількох таблицях по одним і тим же умовам.

Для прикладу розглянемо таку задачу. Дано три таблиці, в яких є деякі дані. Потрібно провести зміну даних в обох таблицях, використовуючи один запит. Якраз для вирішення такого роду завдань можна застосовувати в команді Update конструкцію Join. Сам тип конструкції Join залежить, так само, як і в випадку з вибіркою даних, від результату, який хоче отримати програміст.

Розглянемо найпростіший приклад. Потрібно оновити одним запитом дані по одним і тим же умовам. Такого роду запити будуються для оптимізації роботи з базою даних. Навіщо писати різні запити для кожної з таблиць, якщо можна провести всі маніпуляції з даними одним запитом? Приклад MySQL Update Join в нашому випадку буде таким:

Побудова складних запитів

Досить часто при роботі з базою даних необхідно будувати запити не тільки з об'єднанням декількох таблиць, а й з використанням підзапитів. Такі завдання досить складні для розуміння початківця програміста баз даних. Складність полягає в тому, що доводиться продумувати кожен крок, визначати, які дані з якої таблиці або запиту необхідно отримати і як надалі з ними потрібно буде працювати.

Для більш конкретного розуміння можна розглянути (в MySQL Join) приклади складних запитів. Якщо ви новачок і тільки починаєте працювати з базами даних, то такий тренінг піде лише на користь. Ідеальним варіантом, будуть MySQL Left Join приклади.

Mysql join опис, приклад використання команди і рекомендації

Даний запит поверне нам 58 записів про договори продажу, за якими заповнений або існує баланс грошових коштів на обрану дату. В даному випадку це поточна дата. Також в вибірку додано умову, що в назві договору повинні бути символи - «123». Інформація, що виводиться на екран інформація (дані), буде мати сортування - впорядкованість за номером договору.

Наступний приклад виведе на екран дані про всі платежі, в яких буде вказано номер договору.

Mysql join опис, приклад використання команди і рекомендації

Використання підзапитів

Як вже говорилося раніше, при роботі з базами даних можна об'єднати не тільки таблиці, але і таблицю із запитом. Така конструкція використовується в основному для прискорення роботи запиту і його оптимізації.

Наприклад, якщо необхідно з таблиці, яка має кілька сот полів і, скажімо, тисячу записів, вибрати всього два поля, то варто використовувати запит, який поверне тільки необхідні поля, і об'єднати його з основною вибіркою даних. Як приклад MySQL Join Select можна розглянути запит такого типу:

Це не всі способи використання стандартних конструкцій MySQL, а тільки стандартні. Як використовувати конструкцію Join і в яких її видах, вирішує сам програміст, але варто пам'ятати і враховувати те, який результат треба отримати при виконанні запиту.

Mysql join опис, приклад використання команди і рекомендації