Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> PHP /MySQL Programmering >> Content

    MySQL Fogar Förhållande Tutorial

    MySQL är en öppen källkod relationsdatabas management system ( RDBMS ) som individer och företag ofta använder för att köra tillbaka i slutet av webbapplikationer . I SQL , kopplingar frustrera ofta nya användare . Som databaser blir större , blir det viktigt för frågor att använda kopplingar effektivt . MySQL : s JOIN sökord gör det lättare att arbeta med både nya och gamla kod . Inre kopplingar

    När du tänker på att gå två tabeller , tänker du förmodligen på en fråga med ett enkelt delta i en tabell som anställda med en tabell som Avdelningar :

    SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM avdelningar , EmployeesWHERE Departments.department_id = Employees.department_id ;

    Detta är en inre koppling . Den hämtar bara de rader där department_id är exakt lika i båda tabellerna . Ovanstående kod fungerar i MySQL , men du kan finna det mindre läsbart än följande :

    SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM DepartmentsINNER JOIN EmployeesON Departments.department_id = Employees.department_id ;

    Dessa två frågor ger exakt samma effekt . Skillnaden är att med hjälp av MySQL JOIN nyckelordet , har du gjort det mer uppenbart vilken typ av koppling du använde . Eftersom inre koppling är standard , om du lämnar bort sökordet INNER , MySQL fortfarande utför en inre koppling .
    Yttre kopplingar
    p Om du har anställda som inte tilldelats till en viss avdelning och har ett NULL värde för deras department_id , kommer ovanstående join visas inte de anställda alls . Om du vill att alla medarbetare oavsett om de har en avdelning eller inte , måste du använda en yttre koppling .

    MySQL använder vänster eller höger med Gå sökord för att ange att du vill ha en yttre koppling , och berätta det som tabell du vill nollorna från . Här är vår reviderade fråga :

    SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM EmployeesLEFT OUTER JOIN DepartmentON Departments.department_id = Employees.department_id ;

    Du får varje medarbetare i din produktion , även om MySQL finner inget department_id att matcha den anställde rekord . Tabellen du vill tillåta nollor från ( departement ) är till vänster om likhetstecknet .
    P Om du ville se avdelningar med några anställda i din produktion , skulle du använda en höger yttre koppling . Tabellen du vill tillåta nollor från i så fall är på rätt om likhetstecknet .
    Cross förenar

    gör kors går genom olycka är en vanligt misstag . Det är vad som händer när du inte anger en gå alls . Om du inte heller sätta en koppling i din WHERE , eller använd någon av de andra JOIN ... ON alternativ , du får varje möjlig kombination av raderna i varje tabeller i FROM huruvida de har en relation eller inte .

    Om du drar från tre tabeller med respektive 10 , 20 och 3 rader , får du 10 x 20 x 3 rader som din totala produktion . Du kan se problemet orsakar detta , om din databas har mer än ett par skivor .

    Sällan , kommer du vill göra ett kors med flit . MySQL kan du använda CROSS JOIN ... ON syntax för att visa alla som redigerar din kod senare att korset join var avsiktlig .

    Tidigare:

    nästa:
    relaterade artiklar
    ·PHP överföringsvärden
    ·MySQL är långsam med alltför många beständiga ansl…
    ·Konvertera Bråk i PHP
    ·Hur får MySQL -certifiering
    ·Hur du ansluter Oracle Database Med PHP
    ·Range Query I MySQL
    ·Hur man bygger ett exempel på en PHP Sök Hemsida
    ·Hur man testar med PHP
    ·Hur man uppdaterar en post i MySQL
    ·Hur man skapar en Array genom instanser i PHP
    Utvalda artiklarna
    ·Hur man sätter flikarna på vänster sida med Extjs
    ·Hur man skapar matriser från en CSV Med Python
    ·Hur man använder VBA Läs ett Microsoft Word-dokument
    ·Base SDK Saknas Xcode
    ·Hur Ring församlingens rutiner från Perl
    ·Funktioner I VB.NET
    ·Hur man iterera över en TreeMap
    ·Hur man kan utveckla Java-program för en Blackberry
    ·Hur konvertera HTML till PDF Använda PHP
    ·Hur man utför MSA på provbockar
    Copyright © Dator Kunskap http://www.dator.xyz