gpt4 book ai didi

mysql - 类表继承 : Can anyone suggest methods for selecting data from subclasses/subtables?

转载 作者:行者123 更新时间:2023-11-30 23:33:48 25 4
gpt4 key购买 nike

我正在尝试使用通常(?)称为类表继承的方法在 MySQL 中对对象建模。

参见此处:http://martinfowler.com/eaaCatalog/classTableInheritance.html

基本上我有三个表:

Items (item_id,posX,posY,sort)

Items_Text (item_id,text)

Items_Image (item_id, url)

当我选择数据时,我只想得到:

item_id,posX,posY,sort,text

item_id,posX,posY,sort,url

有谁能推荐一种方法吗?

我能想到的唯一方法是根据 Items 表中的附加列“类型”对其进行硬编码,或者将其硬编码到我不想考虑的应用程序逻辑中的其他一些方法。我想我希望有一些我不熟悉的使用连接的复杂(或其他)方法?

谢谢,

最佳答案

您可以使用左外连接,并在连接的 ID 列中检查结果是否为 null,如下所示:

select
i.item_id
, i.posX
, i.posY
, i.sort
, t.item_id
, t.text
, u.item_id
, u.url
from Items i
left outer join Items_Text t on t.item_id=i.item_id
left outer join Items_Image u on u.item_id=i.item_id

当您检查返回的结果集时,只有当项目位于 Items_Text 中时,您才会在 t.item_id 中获得非空值,并且非-仅当项目位于 Items_Image 中时,u.item_id 中为空。您可以使用此测试来确定类型,而无需显式列。

关于mysql - 类表继承 : Can anyone suggest methods for selecting data from subclasses/subtables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9216369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com