*   >> Læs Uddannelse artikler >> science >> programming

Mysql: Forståelse relationel Tables

er indre deltage. Du vil lære om andre typer af joins i lektion 12, "rel =" nofollow "class =" exlnk "target =" _ blank "Oprettelse Advanced Melder."



Udenlandske Nøgler

Selv hvis dit bord definition har en fremmed nøgle defineret (du vil lære, hvordan du gør dette i Lektion 17), skal du inkludere et WHERE-udtryk, der angiver den slutte tilstand. Forholdet skal bruges til en join aldrig opbevares på databasen niveau.


Vær med flere tabeller

Du kan tilmelde mere end to tabeller i en forespørgsel ved at angive alle de tabelnavne i FROM klausul. Det følgende eksempel bruger relationer mellem ordrer, order_lines, og produkter tabeller til at producere en ordre historie for en bestemt kunde:

 mysql> SELECT o.order_id, o.order_date, l.quantity, p.name -> FRA ordrer o, order_lines l, produkter p -> WHERE o.order_id = l.order_id -> OG p.product_code = l.product_code -> OG o.customer_code = 'SCICORP' -> ORDER BY o.

order_date; + - -------- + ------------- + ---------- + ---------------- - + | order_id | ORDER_DATE | mængde | name | + ---------- + ------------- + ---------- + ----------- ------- + | 3 | 2006-01-23 | 16 | Lille produkt || 4 | 2006-02-02 | 16 | Lille produkt || 4 | 2006-02-02 | 10 | Stor produkt || 5 | 2006/02/05 | 10 | Medium produkt || 5 | 2006/02/05 | 10 | Stort produkt | + ---------- + ------------- + ---------- + ---------- -------- + 5 rækker i sæt (0.

00 sec)


For at udføre en equijoin på flere borde, en tilstand, WHERE skal angive en relation fra hvert bord til en anden tabel . I dette eksempel er der relationer mellem ordrer og order_lines, og mellem order_lines og produkter.

Hver række i order_lines tilføjer den angivne mængde af et produkt til en ordre. Kolonnen order_id i order_lines slutter tabellen ordrer, og product_code kolonnen slutter den til produkter. De første to betingelser i WHERE indikerer disse relationer. Den tredje filter bruges til at returnere kun ordre historie for SCICORP.



Joining Borde

I det foregående eksempel, fordi der ikke er nogen direkte sammenhæng mellem ordrer og produkter, ingen betingelse i WHERE forsøger at sammenkæde disse tabeller.

Selv om hver tabel sluttede bør have et forhold til en anden tabel i forespørgslen, hvert bord behøver ikke at beand vil normalt ikke berelated til enhver anden tabel.

Page   <<  [1] [2] [3] [4] 

Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.