外键返回空结果集
Posted
技术标签:
【中文标题】外键返回空结果集【英文标题】:Foreign key returning empty result set 【发布时间】:2020-05-29 15:52:00 【问题描述】:我创建了一个外键来链接两个表:
-
我的用户地址(外键)
用户登录详细信息(主键)。
但是,当我创建外键时,用户输入的任何详细信息都不会保存在地址表中。而当地址表没有外键时,它将输入插入地址表就可以了。
我对 mysql 没有太多经验,所以错误可能是微不足道的,但是我自己找不到解决方案。我正在使用 php 程序。
这是我的数据库示例:
包含外键的地址表:
1 id Primary int(11) No None AUTO_INCREMENT
2 address_fk Index int(11) No None
3 address_line_one varchar(25) utf8_general_ci No None
4 address_line_two varchar(25) utf8_general_ci No None
带有主键的用户详细信息:
1 id Primary int(11) No None AUTO_INCREMENT
2 user_email varchar(320) utf8_general_ci No None
3 user_password char(60) utf8_general_ci No None
任何指导将不胜感激。
【问题讨论】:
请发布您的表格的数据和结构示例 我已经在相关表中添加了,除了一组用户登录的详细信息之外,我目前在这些表中没有任何数据。 只有表格的 CREATE TABLE 脚本提供所需的信息 - 请替换表格结构。并添加一些示例数据(作为 INSERT INTO 脚本)和该数据所需的结果。 【参考方案1】:子表中的外键必须引用父表中现有的主键列。如果您的主键是 User Details 表中的 ID 列,那么您的外键将是 AddressesID 列/em> 表,因为它将指向父表中的 ID 列。
您当前的设置将 address_fk 列指示为外键;但是,User Details 表中没有它可以指向的这样的列。
【讨论】:
以上是关于外键返回空结果集的主要内容,如果未能解决你的问题,请参考以下文章
Postgres检查jsonb数组是不是不包含值返回空结果集
用于返回结果集的 where 子句中的 case 语句包含空值