在學習MySQL數據庫的過程中,我們需要不斷練習和鞏固自己的知識。今天,我們來看一道涉及到三張表的查詢練習題。
表1: users
字段: user_id, username
表2: orders
字段: order_id, user_id, order_time
表3: order_items
字段: item_id, order_id, item_name, item_price
題目要求:查詢用戶最近一次訂單,以及該訂單中的商品明細。
SELECT u.username, o.order_time, i.item_name, i.item_price
FROM users u
JOIN orders o ON u.user_id = o.user_id
JOIN order_items i ON o.order_id = i.order_id
WHERE o.order_time = (
SELECT MAX(order_time)
FROM orders
WHERE user_id = u.user_id
)
首先,我們需要用到三張表。所以使用了 JOIN 關鍵字來連接這三張表。我們要查詢的內容包括:用戶名稱、最近訂單時間、所購買的商品名字和商品價格。
其次,我們要找到每個用戶最近的訂單。所以使用了子查詢來找到每個用戶最近的訂單時間,然后在外層的查詢中根據此時間來篩選出最近的訂單。
最后,我們通過使用 SELECT 關鍵字來顯示我們需要展示的內容。
通過這道練習題的練習,我們不僅鞏固了 JOIN、子查詢等知識點的理解,也鍛煉了對 SQL 語言的熟練度。相信通過不斷的練習,我們一定能夠掌握 MySQL 數據庫的使用。