0

在更新 ID 或有人试图删除类别时,在 MySQL 中使用关系会派上用场。但是有没有一种简单的方法来进行 SELECT 查询,而不使用 JOIN?

JOIN 好用,但是做 SELECT 的时候不能用关系吗?我可以在没有关系的情况下进行 JOIN!

是否仅使用关系以便我可以控制 ID 字段上的操作?

4

2 回答 2

1

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 JOINs 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.

于 2011-06-29T00:59:15.030 回答
1

是的,您可以 -- 通过子查询。

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

-- 在这个例子中,你实际上是在做一个 INNER JOIN。

关系用于参照完整性。在上面的示例中不能保证 B.Id 必须与 A.Id 有任何关系。如果您将数据库键相互绑定,则可以保证表中必须存在一条记录才能使表A中的行B存在。

于 2011-06-29T00:56:15.170 回答