从具有三个外键的表中选择一个表[关闭]
Posted
技术标签:
【中文标题】从具有三个外键的表中选择一个表[关闭]【英文标题】:SELECT from table with three foregin keys to one table [closed] 【发布时间】:2012-03-21 20:43:30 【问题描述】:我必须创建一个 SQL 语句,该语句从三个表中获取值,一个表是用户表,另一个是意见表,第三个表是主题表,其中四个外键是一个指向意见记录和rest 作为用户记录的单独键。
如何从该表中选择包含主题名称、意见值、主题教授和主题意见人的记录?
【问题讨论】:
也许这只是我,但这个问题写得不够好,无法理解和回答。特别是,您能否提供有关您的架构的更多详细信息(每个表的实际列名......至少 PK 和 FK) 请添加表格的定义 【参考方案1】:好的,现在是星期六晚上,我感觉足够成熟,可以在没有数据模型的情况下解决这个问题。
您提供了三个查找表(主题、意见、用户)的名称,但没有提供实际的结构和列。所以我在做一些猜测。
select subjects.name as subject_name
, opinions.value
, o_users.name as opinion_guy
, p_users.name as professor
from opinions
join subjects on ( opinions.subject_id = subjects.id)
join users as o_users on ( o_users.id = opinions.opinion_guy_id)
join users as p_users on ( p_users.id = subjects.professor_id)
/
我意识到这个查询几乎肯定不适合您的架构,但它应该为您提供一些线索。否则,请给我们表结构、主键和外键等。
【讨论】:
以上是关于从具有三个外键的表中选择一个表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
当我从具有其他外键的表中删除一个条目时,相应的记录也不会被删除
如何在 SAP ASE Sybase 16 中从具有外键的表中删除行
从删除外键的表中选择会导致 ProgrammingError: 1146, "Table <tablename> 不存在"