1. 程式人生 > 資料庫 >MySQL連線查詢例項詳解

MySQL連線查詢例項詳解

本文例項講述了MySQL連線查詢。分享給大家供大家參考,具體如下:

建立表suppliers:

CREATE TABLE suppliers
(
 s_id   int   NOT NULL AUTO_INCREMENT,s_name  char(50) NOT NULL,s_city  char(50) NULL,s_zip   char(10) NULL,s_call  CHAR(50) NOT NULL,PRIMARY KEY (s_id)
) ;
INSERT INTO suppliers(s_id,s_name,s_city,s_zip,s_call)
VALUES(101,'FastFruit Inc.','Tianjin','300000','48075'),(102,'LT Supplies','Chongqing','400000','44333'),(103,'ACME','Shanghai','200000','90046'),(104,'FNK Inc.','Zhongshan','528437','11111'),(105,'Good Set','Taiyuang','030000','22222'),(106,'Just Eat Ours','Beijing','010','45678'),(107,'DK Inc.','Zhengzhou','450000','33332');

內連線

SELECT suppliers.s_id,f_name,f_price
FROM fruits,suppliers
WHERE fruits.s_id = suppliers.s_id;

使用 inner join 語法進行內連線查詢

SELECT suppliers.s_id,f_price
FROM fruits
INNER JOIN suppliers ON fruits.s_id = suppliers.s_id;

建立表orders:

CREATE TABLE orders
(
 o_num int   NOT NULL AUTO_INCREMENT,o_date datetime NOT NULL,c_id  int   NOT NULL,PRIMARY KEY (o_num)
) ;
INSERT INTO orders(o_num,o_date,c_id)
VALUES(30001,'2008-09-01',10001),(30002,'2008-09-12',10003),(30003,'2008-09-30',10004),(30004,'2008-10-03',10005),(30005,'2008-10-08',10001);

左連線

SELECT customers.c_id,orders.o_num
FROM customers LEFT OUTER JOIN orders
ON customers.c_id = orders.c_id;

右連線

SELECT customers.c_id,orders.o_num
from customers RIGHT OUTER JOIN orders
ON customers.c_id = orders.c_id;

複合條件連線查詢

SELECT customers.c_id,orders.o_num
FROM customers INNER JOIN orders
ON customers.c_id = orders.c_id AND customers.c_id = 10001;
SELECT suppliers.s_id,f_price
FROM fruits INNER JOIN suppliers
ON fruits.s_id = suppliers.s_id
ORDER BY fruits.s_id;

【例.46】在fruits表和suppliers表之間使用內連線查詢,查詢之前,檢視兩個表的結構

SELECT suppliers.s_id,suppliers
WHERE fruits.s_id = suppliers.s_id;

【例.47】在fruits表和suppliers表之間使用INNER JOIN語法進行內連線查詢

SELECT suppliers.s_id,f_price
FROM fruits INNER JOIN suppliers
ON fruits.s_id = suppliers.s_id;

【例.48】查詢供應f_id='a1'的水果供應商提供的其他水果種類

SELECT f1.f_id,f1.f_name
FROM fruits AS f1,fruits AS f2
WHERE f1.s_id = f2.s_id AND f2.f_id = 'a1';

【例.49】在customers表和orders表中,查詢所有客戶,包括沒有訂單的客戶,SQL語法如下

SELECT customers.c_id,orders.o_num
FROM customers LEFT OUTER JOIN orders
ON customers.c_id = orders.c_id;

【例.50】在customers表和orders表中,查詢所有訂單,包括沒有客戶的訂單

SELECT customers.c_id,orders.o_num
from customers RIGHT OUTER JOIN orders
ON customers.c_id = orders.c_id;

【例.51】在customers表和orders表中,使用INNER JOIN語法查詢customers表中ID為10001、的客戶的訂單資訊

SELECT customers.c_id,orders.o_num
FROM customers INNER JOIN orders
ON customers.c_id = orders.c_id AND customers.c_id = 10001;

【例.52】在fruits表和suppliers表之間使用INNER JOIN語法進行內連線查詢,並對查詢結果排序

SELECT suppliers.s_id,f_price
FROM fruits INNER JOIN suppliers
ON fruits.s_id = suppliers.s_id
ORDER BY fruits.s_id;

更多關於MySQL相關內容感興趣的讀者可檢視本站專題:《MySQL常用函式大彙總》、《MySQL日誌操作技巧大全》、《MySQL事務操作技巧彙總》、《MySQL儲存過程技巧大全》及《MySQL資料庫鎖相關技巧彙總》

希望本文所述對大家MySQL資料庫計有所幫助。