mysql是一款開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在數(shù)據(jù)管理方面具有非常高的性能和可靠性,因此廣泛應(yīng)用于各種 web 應(yīng)用程序中。
在mysql中,數(shù)據(jù)存儲(chǔ)在表中,而多張表之間又可能存在數(shù)據(jù)的關(guān)聯(lián)關(guān)系。今天我們要講的就是如何在mysql中處理兩張數(shù)據(jù)集之間的關(guān)聯(lián)。
表1: user
+----+--------+------------+
| id | name | email |
+----+--------+------------+
| 1 | Alice | alice@abc.com |
| 2 | Bob | bob@abc.com |
| 3 | Charlie| charlie@abc.com |
+----+--------+------------+
表2: order
+----+---------+--------+
| id | user_id | amount |
+----+---------+--------+
| 1 | 1 | 100 |
| 2 | 1 | 50 |
| 3 | 2 | 200 |
| 4 | 3 | 300 |
+----+---------+--------+
以上是我們要用到的兩張表格,user 表記錄了一些用戶的基本信息,包括其姓名和郵箱;而 order 表記錄了用戶的訂單信息,包括用戶id、訂單id和訂單金額。
SELECT user.name, order.amount
FROM user
JOIN order ON user.id = order.user_id
為了對(duì)這兩張表之間的數(shù)據(jù)進(jìn)行聯(lián)合查詢,我們使用了 mysql 中的 JOIN 操作符,將 user 表和 order 表連接起來(lái)。并且通過(guò) user.id = order.user_id 的條件,將兩個(gè)表關(guān)聯(lián)起來(lái),最終得到了如下結(jié)果:
結(jié)果:
+--------+--------+
| name | amount |
+--------+--------+
| Alice | 100 |
| Alice | 50 |
| Bob | 200 |
| Charlie| 300 |
+--------+--------+
從中我們可以看到,用戶 Alice 有兩個(gè)訂單,而其他用戶只有一個(gè)訂單。
總的來(lái)說(shuō),mysql 中聯(lián)合查詢兩張表的方法十分簡(jiǎn)單,只需要使用 JOIN 操作符,并且確認(rèn)兩張表之間的關(guān)聯(lián)條件即可。
下一篇如何折疊大表格行css