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

Mysql: Understanding Relational Tables

SELECT * FROM T2; + ---- + -------- + | id | brief | + ---- + -------- + | 1 | X || 2 | Y || 3 | Z | + ---- + -------- + 3 rijen in set (0.00 sec)

Voer nu een join op de twee tafels, zonder voorwaarde opgegeven

 mysql> SELECT * -> UIT T1, T2; + ---- + -------- + ---- + -------- + | id | brief | id | brief | + ---- ---- + --- + ---- + -------- + | 1 | A | 1 | X || 2 | B | 1 | X || 3 | C | 1 | X || 1 | A | 2 | Y || 2 | B | 2 | Y || 3 | C | 2 | Y || 1 | A | 3 | Z || 2 | B | 3 | Z || 3 | C | 3 | Z | + ---- + -------- + ---- + -------- + 9 rijen in set (0.

00 sec)

Als u kunt zien, is elke rij van T1 in combinatie met elke rij van T2. Drie rijen in elke tabel produceren sluiten, resulterend in een totaal van negen paren platen. Dit staat bekend als een Cartesiaans product, en het is zelden het resultaat dat u zou willen van een query.

SELECT *

Merk op hoe de SELECT * notatie in de vorige Zo veroorzaakt elke kolom van beide tabellen worden geretourneerd. Daardoor twee kolommen genaamd id en twee genoemde letter geretourneerd. Deze kolommen behoren tot de tabellen in de aangegeven volgorde in de FROM-component.

Het totale aantal rijen geretourneerd is het product van het aantal rijen in elke tabel. Je kunt je voorstellen hoe groot de resulterende set data kan groeien wanneer het individu tabellen bevatten een groot aantal rijen zichzelf.

Cross sluit zich aan bij

Een Cartesiaans product is ook wel bekend als een kruis aan te sluiten.

een WHERE voorwaarde om dit mee instrueert MySQL te filteren uit de paren records waarvoor er geen relatie tussen de data toevoegen. Dit is het grootste deel van de rijen die worden geretourneerd in een Cartesiaans product.

Uitgaande van een relatie tussen de kolom id in elke tabel, de join dan het volgende resultaat:

 mysql> SELECT * -> UIT T1, T2 -> WAAR t1.id = t2.id; + --- - + -------- + ---- + -------- + | id | brief | id | brief | + ---- + -------- + ---- + -------- + | 1 | A | 1 | X || 2 | B | 2 | Y || 3 | C | 3 | Z | + ---- + -------- + ---- + -------- + 3 rijen in set (0.00 sec) 

Neem een moment om terug te kijken naar het resultaat van de cartesiaanse product, en je zult zien dat de drie rijen geretourneerd door de vorige voorbeeld verschijnen, maar de andere rijen zijn weggegooid.


Doe So

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

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