gpt4 book ai didi

mysql - 缩短或丢弃 JOIN 到我们不从中提取数据的中间表

转载 作者:行者123 更新时间:2023-11-29 05:54:29 25 4
gpt4 key购买 nike

SELECT
ost_form_entry_values.value as ost_form_entry_values__value
FROM
ost_ticket AS t
LEFT JOIN ost_form_entry
ON t.ticket_id = ost_form_entry.object_id
LEFT JOIN ost_form_entry_values
ON ost_form_entry_values.entry_id = ost_form_entry.id
WHERE ost_form_entry_values.field_id = 20

在这种情况下,ost_form_entry 的唯一目的是连接到 ost_form_entry_values 以获取我正在寻找的值。

有没有不同/更好的方法来做到这一点,这样我就不会加入我没有在最终输出中引用的表?

最佳答案

如果不更改数据模型,答案是。按照表之间的关系来获取您需要的数据是很正常的事情。

如果 ost_form_entryost_form_entry_values 之间存在 1:1 的关系,那么您可以将 object_id 放入值表中(这样可以避免 JOIN),但我怀疑您有所谓的 Entity–attribute–value model 顺便说一句,这不是在 SQL 中保留非结构化数据的最佳方式。

例如,

MySQL 5.7+ 支持 JSON 格式,因此您可以出于与使用值表相同的目的进行调查(并删除该表)。但是,它需要在(可能)很多地方调整应用程序,如果您的 MySQL 版本较旧,则需要升级数据库。

关于mysql - 缩短或丢弃 JOIN 到我们不从中提取数据的中间表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50957207/

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