Sql - mi a különbség a belső csatlakozás, a bal csatlakozás, a megfelelő csatlakozás és a teljes csatlakozás között?

Ezek a képek ezt nem teszik meg nekem. Miért van a jobb felső kép nem csak SELECT * FROM TableA; Miért nem a felső bal oldali fotó nem csak SELECT * FROM TableB; Miért van a felső középső fotó nem SELECT * FROM A INTERSECT SELECT * FROM B. stb - onedaywhen május 20 '17 at 19:08

Nekem van egy probléma az egész koncepcióval: ezek a szakszervezeti ábrázolások, a kereszteződések, kivétel stb. Nem rendelkeznek a vetítés vizuális ábrázolásával, ezért nem lehetnek szakszervezetek. Úgy gondolom, ez összezavarja a jóval, ha a kontextus kapcsolódik. - Május 20-án 17-kor 19:08-kor

@onedaywhen - te vagy az első ilyen ember, akit nehéz megérteni - Pranay Rana May 20 '17 at 19:08

Hm, fogalmam sincs, mi a vörös. - Jonathon Wisnoski május 20-án 17-kor 19:08-kor

Egyetértek azzal, hogy az egyesületek neve (bal és jobb) teljesen ostoba, mivel konkrét irányokat tartalmaz. FULL JOIN kell UNION JOIN, inner join hogy metszik JOIN, és jobbra / balra, hogy a [Relatív] további kapcsolatokat, ahol megadhatja, hogy melyik tábla a komplementer oldalon. Azt mondhatod, hogy a tervező balról jobbra olvasott nyelven jött. - Rahly május 20-án 17-kor 19:08-kor

Az SQL a balról jobbra olvasott nyelv - igen. ) - bjedrzejewski május 20 17-én 19:08-kor

Ennek a diagramnak komoly problémája van, hogy teljesen figyelmen kívül hagyja a félig csatlakozás és a szakszervezetek közötti különbséget. Ez a következő: válasszon a következőket: a. B. Egy belső csatlakozással b a.id = b.id-ben a a kiválasztástól függően. * Egy azonosítóból (b id pont kiválasztása). Ez annak köszönhető, hogy az SQL-kapcsolatok nem két csomópont metszéspontja - a szakszervezet lehet egy, egy, egy vagy több vagy több - sok. Így gyakorlatilag lehetetlen elképzelni a Venn diagramot: az egész diagram megmutatja, hogy "melyik rész fog részt venni az egyesülésben". Ebben az esetben válassza az a pontot. * A kereszt csatlakozással b ugyanazt a diagramot kell teljesíteni, mint a teljes külső csatlakozás. - ubanerjea május 20 17-én 19:08-kor

@ubanerjea Jobb: diagram nem lehet leírni az eljárást, amellyel a BAL vegyületek ismétlődő sorok egy (potenciálisan nem szándékos) viselkedését a „egy a sok”, ahol B egynél több kulcsával A.key. Válasz Arunprasantesha K.V. véleményem szerint átfogóbb. - Eric május 20 17-én 19:08-kor

És mi van a "természetes egyesületekkel"? Kérhet valaki hozzá a képet ehhez a képhez? - skan május 20, 17, 19:08

Nem hiszem, hogy ezek a diagramok bármit vizuálisan is megmagyarázni, ha nincs mély és konkrét megértése annak, amit megpróbál megmutatni. Azok számára, akik először próbálnak tanulmányozni egyesületeket, nem hiszem, hogy egyáltalán hasznosak lennének. - BadHorsie május 20-17-én 19:08-kor

@onedaywhen 1) Vörös és fehér, vörös - kiválasztott elemeket keversz össze. A bal felső balra a SelectA * táblázatból felel meg. Ha a B. táblázatban nincs olyan elem, amely megfelel a bekapcsolt állapotnak. 2) az a.x táblából az aA.-ból csak a táblázatban szereplő oszlopokat tartalmazza. és válasszuk a.x, b.x származó TABLEA egy bal csatlakozzon TableB ab a.abs = b.bas is lehet egy TableB. Abban az esetben, 1: n TABLEA sor többször is előfordulhat (további eredményei TableB), abban az esetben n: m, akkor is kap, hogy n * m sorok esetében n: 1 Ön valószínűleg látni sorok TableB szaporodnak. - Tino 20: 17-kor 19: 08-kor

@Tino: IMO - a legjobb leírása a külső kapcsolat „, egyfajta shotgun házasság: ez teszi az asztalt néhány uniós - igen, mármint a szövetség, nem egy egyesület, akkor is, ha a tábla nem felel meg a szokásos követelményei a szövetség valójában történik kitöltésével egyik vagy mindkét asztal NULL értékeket végrehajtása előtt az egyesület, így a végén, hogy van, hogy megfeleljen ezeknek a normális követelményeknek. " (Dátum: CJ) - aztán május 20-án 17-kor 19:08-kor

@onedaywhen OMG, ez csak túl pontatlan. Mivel az egyesülés az SQL kifejezés, ezek a szavak nagyban megzavarják a drága indulóinkat! Ezen felül, a jobb alsó kép látható, mint az „igazi” Union, mert ott csak nem kapcsolt részei - és ez számomra, mint egy tipikus vadászpuska házasság sokkal jobb,) - Tino május 20 '17 at 19:08

@Pranay seb úgy vélem, hogy szükség lehet kondicionálni „I” az a fejezet, amelyben az utolsó szám «Outer kizárása REGISZTRÁCIÓ», azért, hogy így a kívánt eredményt kölcsönhatásának B uniós B. Minus A. Úgy érzem, hogy a kérés kell frissíteni a a választáshoz a Table_A a FULL JOIN KÜLSŐ Table_B B ON A.Key = B.Key WHERE A.Key semmis és B.Key iS NULL Ha használjuk a VAGY, akkor megkapjuk az összes találatot uniós B - vinsinraw május 20 in '17 19:08

Az INNER JOIN minden olyan rekordot megkap, amely közös a két táblázat között

A BAL JOIN megnyitja az összes bejegyzést a kapcsolt LEFT táblázattól, de ha több oszlopot választott a jobb oldali táblázatban, ha nincsenek hozzá kapcsolódó rekordok, akkor ezek az oszlopok NULL

A JOBB CSATLAKOZÁS hasonló a fentihez, de az összes bejegyzést a JOBB táblázatban tartalmazza

A FULL JOIN az összes rekordot megkapja mindkét asztalról és helyeket NULL oszlopokban, ahol a megfelelő bejegyzések nem léteznek az ellenkező táblában

válaszolt Brian Leeming május 20-án 17-kor 19:07-kor

Köszönjük a szöveg magyarázatát! Ez sokkal jobban működött számomra, mint a képek. - Richard Connamacher május 20 17-én 19:07-kor

Ez technikailag hibás: "Az INNER JOIN minden olyan rekordot kap egy olyan táblázatban, amelyhez hozzá van rendelve a második táblázat." - Az INNER JOIN nem csak visszaadja a rekordokat egy táblázatból. - nietaki május 17-én 19: 07-kor