在MySQL中选择外部列

4

有没有可能直接选择外部表中的数据,而不使用 JOIN 关键字?

就像在书-章节示例中定义 FOREIGN KEY 一样:

SELECT chapter.title FROM book WHERE book.title='some title'

一些数据库管理系统,例如我知道的InterSystems Caché,允许您执行此类操作,但MySQL不支持。 - fthiella
没有连接(join)的情况下,直接查询是不可能的。但是你可以在表格上创建一个“视图”(VIEW),并直接查询以获取您需要的结果。 - Ravinder Reddy
2个回答

1
简单的回答是“不行”。看一下你的查询语句,如果你不与“Book”表连接,那么你怎么定义所选的章节代表哪些书籍(或者它们是从天上掉下来的孤儿章节)。你想要与“Book”表连接;这样你就可以将章节与特定的书籍相关联,并且可以说第1章属于书籍xyz。
SELECT chapter.title FROM book WHERE book.title='some title'

关系将由外键定义。书籍:id - 标题。章节:id- book_id-标题。我期望这是外键最重要的功能。 - Willem-Jan
没错,但是在查询时,你必须将这两个实体与该外键列相关联。否则,结果有点像离婚了一样。 - Rahul
为什么我应该定义外键? - Willem-Jan
为了在实体关系模型中表示两个实体之间的关系,您应该定义外键(FK)。 - Rahul

1
总之 - 不行。 您选择的任何列必须来自于在 from 子句或其中一个 join 子句中的表/视图/子查询/等等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接