问一个数据库问题,外键约束问题。

外键约束。
当A表中的记录删除了,查询时B表需要A表中的记录。如何使得查询记录简单一点。

记录都删除了,你还怎么查记录啊

是啊。但是B表中的记录不能一起删除。比如B表中字段不为空就去A表中查询,如果为空就显示为空。这样行吗? 觉得操作起来太复杂,以前的查询语句都要修改。

反过来查,反正都没有了

如楼上所说 没法查
SQL的主键和外键的作用:
外键取值规则:空值或参照的主键值。
(1)插入非空值时,如果主键表中没有这个值,则不能插入。
(2)更新时,不能改为主键表中没有的值。
(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

你这个没法查询的,删都删了

使用外链接,可以实现 B表中字段不为空就去A表中查询,如果为空就显示为空

在A表记录还没删除时 查询B表 这样可以吗 感觉有点勉强

select B.xxx, A.xxx from B tb left join A ta on(tb.id = ta.foreign_key) where xxx and xxx; 使用左连接,如果A中记录被删了,A.xxx的结果就是空了,如果没被删,也能查询得到

A中记录已经被删除,B表再利用A表中信息做约束条件查询时,查询结果应该为空吧。

楼主的问题是根据B的外码查到A的具体信息吗?也就是B有一个外码,可以为空,而A中有一个主码不为空,而且B信息删除了也不会影响A的存在,当B信息的字段存在时并且与A主码相同的时候,会执行查询到A的信息?
这样的话,不就是select * from A,B where A.xx=B.xx; 一条语句的问题吗,至于B某字段全部为空的时候,那肯定查不到A的啊。