php
  • mysql
  • join
  • 2011-05-18 23 views -1 likes 
    -1

    可能重複:
    SQL Join DifferencesMySQL的加入說明

    $PERSON = $DATABASE_LINK->query("SELECT * FROM `users`,`profiles` WHERE users.first_name = 'shane' && users.last_name = 'larson' && users.setup = '1' && profiles.zipcode = '53511' ORDER BY `full_name` ASC"); 
    
    $PERSON = $PERSON->fetch_object(); 
    
    var_dump($PERSON); 
    

    我想要的掃描基於關名的用戶記錄的查詢,並從配置表檢查郵政編碼。以上是一個例子。它的工作原理,但idk是如何加入完全工作。關於連接如何匹配2行的任何解釋都會非常棒:)

    +0

    從快速谷歌搜索: HTTP:// WWW。tizag.com/mysqlTutorial/mysqljoins.php http://en.wikipedia.org/wiki/Join_(SQL) – 2011-05-18 19:35:44

    回答

    0

    您收到的結果集是用戶表中與用戶條件匹配的所有行的交叉乘積,並且匹配配置文件表中匹配的所有行檔案標準。

    這似乎可能不是你想要的。

    考慮添加諸如users.blammy = profiles.blammy的內容來加入這兩個表。

    0
    SELECT Cities.Name, Countries.Name, Countries.id 
            FROM Cities INNER JOIN Countries 
            ON Cities.CountryId = Countries.id 
            WHERE Cities.Name LIKE = 'town' LIMIT 10 
    

    尋找在該示例:

    第一行選擇來自兩個不同的表(城市和國家)三列。

    第二行指定要加入的兩個表。

    第三行指定要匹配兩個表上的項目。

    從該查詢的結果是Cities.Name列表 匹配LIKE 子句和它們相應的 Countries.Name(它發現通過 匹配Cities.CountryId與 Countries.id)這一點。

    在這裏閱讀更多:http://www.wellho.net/mouth/158_MySQL-LEFT-JOIN-and-RIGHT-JOIN-INNER-JOIN-and-OUTER-JOIN.html

    0

    因此,使用與「WHERE table1.id_x = table2.id_y」做的工作,但據我知道他們是慢於聯接SQL語句(primarly巨大的數據集) 。

    所以有內連接和外連接,外連接分爲左連接和右連接。

    的一點解釋左加入:

    SELECT Class.Id, Class.Name, Professor.Id, Professor.Name 
    FROM FROM Professor INNER JOIN Class 
    ON Professor.Id = Class.ProfessorId; 
    

    此語句選擇所有的教授,如果教授不教一個班不關心。但是如果沒有教授的課程,這個班級沒有被選中。它被稱爲左連接,因爲左表中的'NULL'引用被忽略。在右旋加入應該是微不足道的解釋;)

    SELECT Class.Id, Class.Name, Professor.Id, Professor.Name 
    FROM FROM Professor LEFT OUTER JOIN Class 
    ON Professor.Id = Class.ProfessorId; 
    

    內部聯接不無類節目教授和它做沒有教授表演課程。

    請記住:不是所有的DBMS得到了關鍵詞 '內部' 和 '外部';)

    相關問題