可以提取我正在寻找的数据的MySQL查询?

可以提取我正在寻找的数据的MySQL查询?,第1张

概述在我正在进行的项目中,我陷入了Hades的表结构中.请记住两件事:>我现在无法更改表结构.我暂时坚持使用它.>查询是动态生成的,而不是硬编码的.因此,当我要查询可以提取数据的查询时,我真正要努力的是一种将生成所需查询的算法.希望我能在不使您的眼睛呆滞和大脑爆裂的情况下解释问题.我们有一个实例表,看起来(简化)如下: Instances Inst

在我正在进行的项目中,我陷入了Hades的表结构中.请记住两件事:

>我现在无法更改表结构.我暂时坚持使用它.
>查询是动态生成的,而不是硬编码的.因此,当我要查询可以提取此数据的查询时,我真正要努力的是一种将生成所需查询的算法.

希望我能在不使您的眼睛呆滞和大脑爆裂的情况下解释问题.

我们有一个实例表,看起来(简化)如下:

InstancesInstanceID    active1              Y2              Y3              Y4              N5              Y6              Y

然后,沿着这些行有多个数据表:

table1InstanceID    fIEld1   reference_fIEld21             John      52             Sally        NulL3             Fred          64             Joe          NulLtable2InstanceID    fIEld3 5              16              1table3InstanceID    fIEldID    fIEld45               1        Howard5               2        James6               2        Betty

请注意,表1中的reference_fIEld2包含对另一个实例的引用.
表2中的FIEld3有点复杂.它包含表3的fIEldID.

我需要的是一个查询,该查询将为我提供如下列表:

InstanceID    fIEld1     fIEld4     1              John      Howard2              Sally3              Fred

问题是,在我当前拥有的查询中,我没有得到Fred,因为表3中没有fIEldID 1和InstanceID 6的条目.因此,到目前为止,我能得到的最好的列表是

InstanceID    fIEld1     fIEld4     1              John      Howard2              Sally

本质上,如果表1中有一个字段2的条目,而表3中没有一个包含fIEld2中包含的instanceID和fIEld3中包含的字段ID的条目,那么我不会从fIEld1中获取数据.

我一直看着联接,直到脸色发青,并且当table3没有条目时,我看不到一种处理情况的方法.

最佳答案左加入…

SELECT a.InstanceID,b.fIEld1,d.fIEld4FROM instances AS a     JOIN table1 AS b ON a.InstanceID = b.InstanceID    left JOIN table2 AS c ON b.reference_fIEld2 = c.InstanceID    left JOIN table3 AS d ON (c.InstanceID = d.InstanceID AND c.fIEld3 = d.fIEldID)WHERE a.active = 'Y'

左两个连接应该处理没有其他行的情况. 总结

以上是内存溢出为你收集整理的可以提取我正在寻找的数据的MySQL查询? 全部内容,希望文章能够帮你解决可以提取我正在寻找的数据的MySQL查询? 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1165744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存