2011-06-29 150 views
0

在更新ID或者有人試圖刪除一個類別時,在MySQL中使用關係會派上用場。但有沒有簡單的方法來做一個SELECT查詢,而不使用JOIN?從關係數據庫中選擇

JOIN易於使用,但是在執行SELECT時不能使用關係嗎?我可以做一個沒有關係的JOIN!

是否僅使用關係,以便我可以控制ID字段上的操作?

回答

1

創建數據庫(特定於外鍵)的約束用於維護參照完整性,以防止意外刪除其他行引用的行。

限制條件不提供任何方式使用自動連接的表執行SELECT。因此 - NO,您需要明確指定所有JOIN。並且YES,JOIN不依賴於現有約束:您可以將它用於任何表,任何字段並編寫任何條件,而不管它們是否通過外鍵關係相互引用。

+0

很酷。有點我正在尋找的答案:) – hogni89

1

是的,你可以 - 通過子查詢。

SELECT * 
FROM A 
WHERE A.ID IN 
    (SELECT B.Id FROM B) 

- 在這個例子中,你基本上正在做一個INNER JOIN。

和關係用於參照完整性。頂部的例子中沒有保證B.Id與A.Id有任何關係。如果您的數據庫密鑰相互關聯,那麼可以保證表中的表必須存在表B中存在的行中的記錄。

+0

但是這可以做到沒有關係? – hogni89

+0

您正在定義關係。 –