在MySQL(InnoDB)中,我创建了两个属于历史字符列表的相关表:
characters:
-----------------------------
character_id (PK): int
name: varchar
birthplace: varchar
birthplace_checking: int
birthdate: date
birthdate_checking: int
------------------------------
checking:
------------------------------
checking_id (PK): int
checktype: varchar
------------------------------
其中' birthplace_checking'和' birthdate_checking'外键指的是' checking_id'和' checktype'应该包含信息性数据,例如“未知”,“文档证明”,“推测”和“#39;等等。
我想要实现的是在'字符'上执行SELECT语句。所以' * _检查' int值被各自的“checktype”替换。文本(当然可能不同)。
提前感谢您的帮助。
答案 0 :(得分:1)
诀窍是加入'检查'两次,如下所示:
select c.name
, c.birthplace
, bplace.checktype
, c.birthdate
, bdate.checktype
from characters c
join checking bplace
on c.birthplace_checking = bplace.checking_id
join checking bdate
on c.birthdate_checking = bdate.checking_id
答案 1 :(得分:0)
只是为了记录,一个更紧凑的版本应该是:
select c.name
, c.birthplace
, bplace.checktype
, c.birthdate
, bdate.checktype
from characters c, checking bplace, checking bdate
where c.birthplace_checking = bplace.checking_id
and c.birthdate_checking = bdate.checking_id