【发布时间】:2011-12-12 12:04:42
【问题描述】:
以前有人问过这个问题,但从未真正回答过(至少我想这样做)。我的数据库中有三个表,threads、responses 和 votes。我需要他们只分享id 字段。所以我可以做类似的事情
SELECT * FROM threads AS t JOIN responses AS r JOIN votes AS v
WHERE id = 15
并且只会检索线程响应或(不包括)id = 15 的投票记录。
有没有办法在不创建额外表格的情况下做到这一点?我不是在问这是否是个好主意(可能不是),而是问是否可行以及如何去做。
【问题讨论】:
-
SQL 表是平面结构。如果他们要通过 key 共享一个 id,则三个表中的每一个都需要有一个 id 列。在一个表(可能是线程)上,它是主键,而在另外两个表上,它是返回线程的外键。