MySQL是一種開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。例如,在一個(gè)電子商務(wù)系統(tǒng)中,一個(gè)訂單表可能包含訂單號(hào)、訂單日期、客戶ID等列。有時(shí)候我們需要查詢一個(gè)客戶的所有訂單,這就需要對(duì)相同的表進(jìn)行自連接。
建立自連接的方式如下:
CREATE TABLE orders ( order_number INT UNSIGNED NOT NULL, order_date DATE NOT NULL, customer_id INT UNSIGNED NOT NULL, PRIMARY KEY (order_number) ); ALTER TABLE orders ADD FOREIGN KEY (customer_id) REFERENCES customer (customer_id); SELECT o1.order_number, o1.order_date, o2.order_number, o2.order_date FROM orders o1, orders o2 WHERE o1.customer_id = o2.customer_id AND o1.order_number< o2.order_number;
在這種情況下,MySQL使用相同的表同時(shí)作為外部和內(nèi)部表。外部表包含要查詢的所有記錄,并且內(nèi)部表也包含要查詢的所有記錄。通過使用o1和o2別名來區(qū)分外部和內(nèi)部表的每個(gè)實(shí)例。
以上是如何在MySQL中進(jìn)行自連接的步驟。希望這對(duì)你有所幫助。