*   >> Lezen Onderwijs artikelen >> science >> programming

Mysql: Understanding Relational Tables

orten

Een join die inhoudt dat een aandoening waarbij kolommen in twee tabellen worden opgegeven als gelijk staat bekend als een equijoin of inner join. U leert over andere typen joins in les 12, "rel =" nofollow "class =" exlnk "target =" _ blank "Creating Geavanceerd sluit zich aan bij."

Foreign Keys

Ook als uw tafel definitie heeft een vreemde sleutel gedefinieerd (leert u hoe dit te doen in les 17), moet u een WHERE clausule die de join voorwaarde specificeert bevatten.

De relatie moet worden gebruikt voor een join wordt nooit in de database opgeslagen niveau.

Deelnemen Multiple Tafels

U kunt deelnemen aan meer dan twee tafels in één vraag door het specificeren van alle namen tafel in de FROM clausule. Het volgende voorbeeld wordt de relaties tussen orders, order_lines en producten tafels een bestelling geschiedenis te produceren voor een bepaalde klant:

 mysql> SELECT o.order_id, o.order_date, l.quantity, p.name -> VANAF bestellingen o, order_lines l, producten p -> WAAR o.order_id = l.order_id -> EN p.product_code = l.product_code -> EN o.

customer_code = 'SCICORP' -> ORDER BY o.order_date; + - -------- + ------------- + ---------- + ---------------- - + | order_id | ORDER_DATE | hoeveelheid | Naam | + ---------- + ------------- + ---------- + ----------- ------- + | 3 | 2006-01-23 | 16 | Klein product || 4 | 2006-02-02 | 16 | Klein product || 4 | 2006-02-02 | 10 | Grote product || 5 | 2006-02-05 | 10 | Medium product || 5 | 2006-02-05 | 10 | Grote product | + ---------- + ------------- + ---------- + ---------- -------- + 5 rijen in set (0.

00 sec)

Om een ​​equijoin op meerdere tafels te voeren, een voorwaarde in de WHERE-component moet een relatie van elke tafel naar een andere tafel te specificeren . In dit voorbeeld zijn er relaties tussen orders en order_lines en tussen order_lines en producten.

Elke rij in order_lines voegt de aangegeven hoeveelheid van een product naar een order. De kolom order_id in order_lines joins die tafel om orders en de kolom product_code sluit zich aan producten. De eerste twee voorwaarden in de WHERE geven deze relaties.

Het derde filter wordt gebruikt om alleen de order geschiedenis terug te keren voor SCICORP.

Joining Tables

In het vorige voorbeeld, omdat er geen directe relatie tussen orders en producten, geen voorwaarde in de WHERE probeert deze tabellen te koppelen.

Hoewel elke tafel samengevoegd moeten een relatie met een andere ta

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

Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.