在更新 ID 或有人试图删除类别时,在 MySQL 中使用关系会派上用场。但是有没有一种简单的方法来进行 SELECT 查询,而不使用 JOIN?
JOIN 好用,但是做 SELECT 的时候不能用关系吗?我可以在没有关系的情况下进行 JOIN!
是否仅使用关系以便我可以控制 ID 字段上的操作?
在更新 ID 或有人试图删除类别时,在 MySQL 中使用关系会派上用场。但是有没有一种简单的方法来进行 SELECT 查询,而不使用 JOIN?
JOIN 好用,但是做 SELECT 的时候不能用关系吗?我可以在没有关系的情况下进行 JOIN!
是否仅使用关系以便我可以控制 ID 字段上的操作?
Constraints in database (foreign keys specifically) are created for maintaining referential integrity, to prevent of accidental deletions of rows that are refered to by another rows.
Constraints doesn't provide any way to perform SELECT
with automatically joined tables. So - NO
, you need to specify all JOIN
s explicitly. And YES
, JOIN
doesn't depend on existing constraints: you can use it for any tables, any fields and write any conditions, regardless their references to each other through foreign key relations.
是的,您可以 -- 通过子查询。
SELECT *
FROM A
WHERE A.ID IN
(SELECT B.Id FROM B)
-- 在这个例子中,你实际上是在做一个 INNER JOIN。
关系用于参照完整性。在上面的示例中不能保证 B.Id 必须与 A.Id 有任何关系。如果您将数据库键相互绑定,则可以保证表中必须存在一条记录才能使表A
中的行B
存在。