MySQL se alătură cu Inner Join

Pentru acest tutorial vom folosi una dintre exemplele de baze de date pe care Mysql ni le oferă gratuit, se numește Sakila, putem descărca și alte exemple de pe site-ul oficial Mysql.

Multe universități le folosesc pentru testarea MySQL și pentru programare.
Apoi dezarhivăm fișierul descărcat și vom vedea două fișiere sakila-schema.sql care conține structura bazei de date și sakila-data.sql A care conține datele eșantionului.
Obiectivul acestei baze de date este de a oferi un mediu de testare, fie să dezvolte software sau să testeze interogări sql și astfel să poată efectua teste cu posibilitățile oferite de MySQL. Structura lui Sakila este complexă, are 1000 de înregistrări și relații multiple.
Baza de date Sakila conține, de asemenea, exemple de vizualizări, proceduri stocate și declanșatoare.
Această bază de date presupune un magazin de închiriere de filme care poate avea sucursale și furnizori,
Procesul presupune că pentru a închiria un film, trebuie mai întâi să confirmăm că filmul este disponibil sau în stoc, apoi trebuie să verificăm dacă clientul există în baza de date și vom atribui filmul sau DVD-ul clientului. De asemenea, trebuie să introducem vânzarea în tabelul de plată. În funcție de regulile de afaceri, poate fi necesar să verificați și dacă clientul are un sold restant.
Pentru a verifica dacă clientul există după nume, putem face o interogare simplă:
 selectați customer.customer_id, customer.store_id, CONCAT (customer.first_name, ", customer.last_name) ca Client de la client unde client.first_name precum" Carlos% 
În acest tutorial ne vom concentra asupra interogărilor combinate prin efectuarea mai multor exemple care vor fi explicate în detaliu.

Clauza SQL Inner Join


O clauză SQL JOIN este utilizată pentru a combina rânduri din două sau mai multe tabele, pe baza unui câmp comun între ele.
INTERIOR ÎNSCRIEȚI-VĂ returnează toate rândurile unite din tabelele care îndeplinesc condiția de asociere.

Exemplul A


Vrem să știm ce clienți au închiriat filme pentru aceasta, avem masa pentru clienți și masa pentru închiriere, de aceea trebuie să știm ce clienți se află în tabelul de închiriere.
 selectați închiriere.rental_id, client.first_name, client.last_name, rental.rental_date, rental.return_date din închiriere ÎNREGISTRAȚI-VĂ clienți ON închiriere.customer_id = client.customer_id 
Rezultatul executării acestei clauze va fi următorul:

În acest caz, este la fel să faceți interogarea cu un Unde:
 selectați rental.rental_id, customer.first_name, customer.last_name, rental.rental_date, rental.return_date din închiriere, client unde rental.customer_id = client.customer_id 
Diferența este că îmbinarea interioară în optimizarea interogării SQL va fi oarecum mai rapidă.

Exemplul B


Avem două magazine sau sucursale care generează o listă zilnică de închirieri restante, astfel încât clienții să poată fi contactați și solicitați să returneze filmul.
Pentru a genera această listă, trebuie să căutăm în tabelul de închiriere filme cu o dată de returnare care este NULL, adică fără dată și care data închirierii depășește timpul sau numărul de zile stabilite pentru ca clientul să poată păstra filmul. Dacă această condiție este îndeplinită, atunci clientul are datorii pentru film, iar numele filmului trebuie să fie afișat în listă, împreună cu numele clientului, numărul de telefon și adresa de e-mail. De asemenea, vom arăta dacă filmul este plătit, la ce dată a fost plătit și cât a fost plătit.
 SELECTAȚI CONCAT (client.last_name, ',', customer.first_name) CA client, address.phone, film.title, customer.email, rental.return_date, payment.payment_date, payment.amount FROM rental INNER JOIN client ON rental.customer_id = client.customer_id INNER JOIN address ON customer.address_id = address.address_id INNER JOIN inventar ON rental.inventory_id = inventar.inventar_id INNER JOIN film ON inventar.film_id = film.film_id INNER JOIN plată ON payment.rental_id = închiriere.rental_id WHERE închiriere .return_date IS NULL ȘI date_de închiriere + INTERVAL film.rental_duration DAY <CURRENT_DATE () 

Exemplul C


Vrem să aflăm care este clientul care închiriază cele mai multe filme pentru aceasta scriem următoarea clauză
 Selectați CONCAT (client.first_name, ", customer.last_name) ca Client, numărați (închiriere.customer_id) ca Total din închiriere înscrieți-vă client pe închiriere.customer_id = client.customer_id grup după închiriere.customer_id ***** după total desc 
Deci, putem face multe teste cu Mysql pentru a testa performanța. Într-un alt tutorial vom avansa în interogări mai complexe:

Exemplul C


Vrem să aflăm care este clientul care închiriază cele mai multe filme pentru aceasta scriem următoarea clauză
 Selectați CONCAT (client.first_name, ", client.last_name) ca Client, numărați (închiriere.customer_id) ca Total din închiriere internați clienți pe închiriere.customer_id = client.customer_id grup după închiriere.customer_id ***** după total desc 
Deci, putem face multe teste cu MySQL pentru a testa performanța. Într-un alt tutorial vom avansa în interogări mai complexe.

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave