您能夠使用 JOIN 語句,根據它們之間的相關列組合兩個或多個表中的行。mysql
假設您有 "users" 表和 "products" 表:sql
{ id: 1, name: 'John', fav: 154}, { id: 2, name: 'Peter', fav: 154}, { id: 3, name: 'Amy', fav: 155}, { id: 4, name: 'Hannah', fav:}, { id: 5, name: 'Michael', fav:}
{ id: 154, name: 'Chocolate Heaven' }, { id: 155, name: 'Tasty Lemons' }, { id: 156, name: 'Vanilla Dreams' }
能夠使用 users 的 fav 字段和 products 的 id 字段來組合這兩個表。
組合用戶和產品,查看用戶最喜歡的產品名稱:code
sql = "SELECT users.name AS user, products.name AS favorite FROM users INNER JOIN products ON users.fav = products.id"
('John', 'Chocolate Heaven') ('Peter', 'Chocolate Heaven') ('Amy', 'Tasty Lemon')
註釋:您能夠使用 JOIN 而不是 INNER JOIN。您都會獲得相同的結果。排序
sql = "SELECT users.name AS user, products.name AS favorite FROM users LEFT JOIN products ON users.fav = products.id"
('John', 'Chocolate Heaven') ('Peter', 'Chocolate Heaven') ('Amy', 'Tasty Lemon') ('Hannah', None) ('Michael', None)
sql = "SELECT users.name AS user, products.name AS favorite FROM users RIGHT JOIN products ON users.fav = products.id"
('John', 'Chocolate Heaven') ('Peter', 'Chocolate Heaven') ('Amy', 'Tasty Lemon') (None, 'Vanilla Dreams')
update a inner join b on a.id=b.id set a.x=b.x,a.y=b.y;
在表中,可能會包含重複值。這並不成問題,不過,有時您也許但願僅僅列出不一樣(distinct)的值。
關鍵詞 DISTINCT 用於返回惟一不一樣的值。產品
語法:it
SELECT DISTINCT 列名稱 FROM 表名稱
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
下面的運算符可在 WHERE 子句中使用:table
操做符 描述ast
= 等於 | header |
---|---|
<> | 不等於 |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
BETWEEN 在某個範圍內
LIKE 搜索某種模式
註釋:在某些版本的 SQL 中,操做符 <> 能夠寫爲 !=。date
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter' SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter' SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC