gpt4 book ai didi

mysql - 连接查询的 if 条件

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

SELECT tm.MAGAZINE_ID, tm.publisher_id, tu.begin_date, tu.report_from,
units `MAGAZINE_NAME`
FROM `tbl_itunes_report` tu
LEFT JOIN tbl_magazine_subscription_dtl tsd
ON tsd.subscription_key = tu.sku_key
AND ((tu.begin_date >= tsd.start_date
AND tu.begin_date < tsd.end_date) OR (tu.begin_date >= tsd.start_date
AND tsd.end_date = '0000-00-00'))
LEFT JOIN tbl_magazine_subscription ts
ON ts.magazine_subscription_id = tsd.subs_id
LEFT JOIN tbl_magazine_issue ti
ON ti.PurchaseKey = tu.sku_key AND ti.OS_SELECT = 0
LEFT JOIN tbl_magazine tm
ON tm.magazine_id = ts.magazine_id OR tm.magazine_id = ti.magazine_id
WHERE `product_type_identifier` LIKE 'IA%'
AND ( tsd.subscription_key IS NOT NULL OR ti.PurchaseKey IS NOT NULL )
GROUP BY tm.MAGAZINE_ID,tsd.no_of_issues
ORDER BY tm.magazine_name, tsd.no_of_issues

使用此查询我将生成我的报告。其中有 4 个连接。在 tbl_magazine_subscription_dtl 的情况下,tbl_magazine_issue 使用 sku_key 字段进行加入。 sku_key 值一次只出现在一张表中,但连接会导致查询速度下降。是否可以在执行连接之前检查 sku_key 是否存在?

最佳答案

我不完全理解您的问题,您是否只需要 sku_key 不为 null 且同时出现在 tbl_magazine_issuetbl_magazine_subscription_dtl 中的行>?在这种情况下,您应该对 tbl_magazine_issue 执行内连接而不是左外连接,并将 AND tu.sku_key IS NOT NULL 添加到 WHERE 子句。查询引擎应该足够智能,能够在连接之前应用此条件。

如果您担心此连接的性能,还应该确保 sku_keyPurchaseKey 已编入索引。

关于mysql - 连接查询的 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20718379/

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