<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # SQLite 連接表 > 原文: [http://zetcode.com/db/sqlite/joins/](http://zetcode.com/db/sqlite/joins/) 在 SQLite 教程的這一部分中,我們將在 SQLite 中連接表。 關系數據庫的真正力量和收益來自于連接表。 `SQL JOIN`子句合并了數據庫中兩個或多個表中的記錄。 基本上有兩種連接類型:`INNER`和`OUTER`。 在本教程的這一部分中,我們將使用`Customers`和`Reservations`表。 ```sql sqlite> SELECT * FROM Customers; CustomerId Name ---------- ----------- 1 Paul Novak 2 Terry Neils 3 Jack Fonda 4 Tom Willis ``` 這些是`Customers`表中的值。 ```sql sqlite> SELECT * FROM Reservations; Id CustomerId Day -- ---------- ---------- 1 1 2009-22-11 2 2 2009-28-11 3 2 2009-29-11 4 1 2009-29-11 5 3 2009-02-12 ``` 這些是`Reservations`表中的值。 ## SQLite 內連接 內連接是最常見的連接類型。 這也是默認的連接。 內連接僅從數據庫表中選擇具有匹配值的記錄。 我們有`INNER JOINS`的三種類型:`INNER JOIN`,`NATURAL INNER JOIN`和`CROSS INNER JOIN`。 `INNER`關鍵字可以省略。 ### 內連接 ```sql sqlite> SELECT Name, Day FROM Customers AS C JOIN Reservations ...> AS R ON C.CustomerId=R.CustomerId; Name Day ----------- ----------- Paul Novak 2009-22-11 Terry Neils 2009-28-11 Terry Neils 2009-29-11 Paul Novak 2009-29-11 Jack Fonda 2009-02-12 ``` 在此`SELECT`語句中,我們選擇了所有已進行預訂的客戶。 請注意,我們省略了`INNER`關鍵字。 該語句等效于以下語句: ```sql sqlite> SELECT Name, Day FROM Customers, Reservations ...> WHERE Customers.CustomerId = Reservations.CustomerId; Name Day ---------- ----------- Paul Novak 2009-22-11 Terry Neil 2009-28-11 Terry Neil 2009-29-11 Paul Novak 2009-29-11 Jack Fonda 2009-02-12 ``` 我們得到相同的數據。 ### 自然內連接 `NATURAL INNER JOIN`自動使用所有匹配的列名進行連接。 在我們的表中,兩個表中都有一個名為`CustomerId`的列。 ```sql sqlite> SELECT Name, Day FROM Customers NATURAL JOIN Reservations; Name Day ----------- ---------- Paul Novak 2009-22-11 Terry Neils 2009-28-11 Terry Neils 2009-29-11 Paul Novak 2009-29-11 Jack Fonda 2009-02-12 ``` 我們得到相同的數據。 SQL 語句不太冗長。 ### 交叉內連接 `CROSS INNER JOIN`將一個表中的所有記錄與另一表中的所有記錄組合在一起。 這種連接幾乎沒有實用價值。 它也稱為記錄的笛卡爾積。 ```sql sqlite> SELECT Name, Day FROM Customers CROSS JOIN Reservations; Name Day ----------- ---------- Paul Novak 2009-22-11 Paul Novak 2009-28-11 Paul Novak 2009-29-11 Paul Novak 2009-29-11 Paul Novak 2009-02-12 Terry Neils 2009-22-11 Terry Neils 2009-28-11 Terry Neils 2009-29-11 Terry Neils 2009-29-11 Terry Neils 2009-02-12 ... ``` 使用以下 SQL 語句可以達到相同的結果: ```sql sqlite> SELECT Name, Day FROM Customers, Reservations; ``` ## SQLite 外連接 外連接不需要兩個連接表中的每個記錄都具有匹配的記錄。 外連接共有三種類型:左外連接,右外連接和全外連接。 SQLite 僅支持左外連接。 ### 左外連接 即使與右表不匹配,`LEFT OUTER JOIN`也將從左表返回所有值。 在此類行中,將有`NULL`值。 換句話說,左外連接返回左表中的所有值,以及右表中的匹配值。 注意,可以省略`OUTER`關鍵字。 ```sql sqlite> SELECT Name, Day FROM Customers LEFT JOIN Reservations ...> ON Customers.CustomerId = Reservations.CustomerId; Name Day ----------- ----------- Paul Novak 2009-22-11 Paul Novak 2009-29-11 Terry Neils 2009-28-11 Terry Neils 2009-29-11 Jack Fonda 2009-02-12 Tom Willis NULL ``` 在這里,我們有所有保留客戶的客戶和沒有保留客戶的客戶。 他的行中有一個`NULL`值。 我們可以使用`USING`關鍵字獲得相同的結果。 SQL 語句將不再那么冗長。 ```sql sqlite> SELECT Name, Day FROM Customers LEFT JOIN Reservations ...> USING (CustomerId); Name Day ----------- ----------- Paul Novak 2009-22-11 Paul Novak 2009-29-11 Terry Neils 2009-28-11 Terry Neils 2009-29-11 Jack Fonda 2009-02-12 Tom Willis NULL ``` 使用較短的 SQL 語句,我們得到的結果相同。 ### 自然左外連接 `NATURAL LEFT OUTER JOIN`自動使用所有匹配的列名進行連接。 ```sql sqlite> SELECT Name, Day FROM Customers NATURAL LEFT OUTER JOIN Reservations; Name Day ----------- ---------- Paul Novak 2009-22-11 Paul Novak 2009-29-11 Terry Neils 2009-28-11 Terry Neils 2009-29-11 Jack Fonda 2009-02-12 Tom Willis NULL ``` 我們具有相同的輸出,但是使用的按鍵更少。 在 SQLite 教程的這一部分中,我們將連接表。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看