【发布时间】:2013-11-04 04:33:56
【问题描述】:
我目前正在处理一些遗留系统,我遇到了一段这样写的 sql:
SELECT
cel.id,
cel.campaign_id,
cel.campaign_name,
cel.campaign_message_type,
cel.responsible_user_id,
cel.responsible_user_full_name,
cel.person_id,
cel.email_template_id,
cel.email_message_subject,
cel.recipient_list_name,
cel.first_name,
cel.last_name,
cel.email_address,
b.message_content_html email_message_content_html,
b.message_content_text email_message_content_text,
b.course_presentation_id,
cp.phone_mobile
FROM
campaigns_email_logs cel
LEFT JOIN contacts_people cp ON
(cel.person_id = c.id),
campaigns_email b
WHERE
cel.campaign_id = b.id and
cel.status = 'queued' and
cel.datetime_start < now() and
cel.datetime_end > now() and
b.paused = 'no'
order by
{$campaignMessagesToSendOrdering};
请您解释一下 LEFT JOINcampaign_email 的作用?是否在contacts_people 上进行交叉连接?为了让我快速理解这一点,任何人都可以在没有 ,campaigns_email 的情况下重写它。
我知道你的 from 子句中可以有多个表,但我从未见过这样的情况。
谢谢。
【问题讨论】:
-
这里没有人会为你做你的工作,这里的人会帮你找到问题的解决方案,你试图解决。在寻求帮助之前至少检查文档Join Doku MySql
-
@winner_joiner 他在哪里要求你为他工作?
-
any one please rewrite it without the ,campaigns_email.- 在没有连接的情况下重写查询仅意味着从查询中删除它:, campaigns_email b -
@jerdiggity 对我来说是“请您解释一下 LEFT JOIN ... 正在做什么?”和“......任何人都可以重写它......”,似乎是不阅读文档并让某人完成工作的简单方法,但这只是我的意见。也许我理解错了,我的错。