mysql - 无法使用 mysql 3 joins 查询获取完整数据
问题描述
我在域表中有 1500 条记录,但使用此查询只能获得 1215 条记录。如何修改此查询以提供所需的结果和更好的性能
SELECT
d.id, d.domain_name, d.action, d.comment, d.agent_email,
d.assigned_date, d.added_date, dd.registered_on, dd.expiry_date,
dd.updated_date, dd.acquire_price, dd.acquire_date, dd.email,
dd.effective_price, dd.registrar, dd.status, dd.servers,
count(l.lead_domain), d.domainer_email, d.current_status,
d.undeveloped, d.sedo, d.afternic, d.flippa, d.uniregistry,
d.go_daddy, d.domr, d.minimum_offer, d.buy_it_now_price,
d.way_to_find_leads, dd.tlds_taken
FROM domains d
right join domains_data dd on d.domain_name=dd.domain_name
left outer join lead_domains l on d.domain_name=l.domain_name
and d.domainer_email=l.domainer_email
group by d.domain_name
having d.action='all' and d.domainer_email='abc@gmail.com'
order by d.added_date desc;
解决方案
您的结果取决于domains_data
表格。
由于您正确加入domains
,domains_data
因此将采用其中的条目domains_data
。如果您希望domains
考虑 的条目,请使用如下所示的左连接。
SELECT d.id, d.domain_name, d.action, d.comment, d.agent_email, d.assigned_date, d.added_date, dd.registered_on, dd.expiry_date, dd.updated_date, dd.acquire_price, dd.acquire_date, dd.email, dd.effective_price, dd.registrar, dd.status, dd.servers, COUNT(l.lead_domain), d.domainer_email, d.current_status, d.undeveloped, d.sedo, d.afternic, d.flippa, d.uniregistry, d.go_daddy, d.domr, d.minimum_offer, d.buy_it_now_price, d.way_to_find_leads, dd.tlds_taken
FROM domains d
LEFT JOIN domains_data dd ON d.domain_name=dd.domain_name
LEFT OUTER JOIN lead_domains l ON d.domain_name=l.domain_name AND d.domainer_email=l.domainer_email
GROUP BY d.domain_name
HAVING d.action='all' AND d.domainer_email='abc@gmail.com'
ORDER BY d.added_date DESC;
如果您仍然无法获得所需的结果,请检查having
条件。
推荐阅读
- maven - 尽管在 pom.xml 中排除了重复的 JAR,但仍被复制
- angular - 如何在ionic3中使用ngx-walkthrough
- c - 星号位置在 C 函数构建中意味着什么?
- asp.net - 将 media_ids 添加到 Twitter API 调用会导致身份验证问题
- regex - 匹配大写单词
- ruby-on-rails - Faker 问题在belongs_to 关系上播种数据
- java - OTP 没有从 firebase 代码中获取是正确的
- c# - 如何在单元测试中忽略 SQL 重试策略?
- javascript - 无法通过 url 访问 Ember 子路由并将我重定向到父路由
- json - IBM Watson 对话:如何从上下文变量访问 JSON 对象?