【问题标题】:Multiple column sub query not working with cartesian product多列子查询不适用于笛卡尔积
【发布时间】:2015-09-18 22:35:00
【问题描述】:
SELECT 
   daf.id as affiliate_id,
   daf.name as affiliate_name,
   dal.name as allocation_name,
   dal.id as allocation_id,
   dal.allocation,dal.price
FROM 
     degreeamerica.affiliates daf,degreeamerica.allocations dal
JOIN 
     (select pap.lead_price,pap.live from paul.affiliates_price pap) pafp  
ON (dal.id=pafp.allocation_id and daf.id=pafp.affiliate_id) 
ORDER BY daf.id;

未知列 pafp.allocation_id。我有这个专栏。但它不起作用。请帮忙。

【问题讨论】:

  • 不要在from 子句中使用逗号。始终使用明确的join(即使cross join)。这将解决您的问题。
  • 子查询中没有该列
  • (select pap.lead_price,pap.live,allocation_id,affiliate_id from paul.affiliates_price pap) 修复
  • 感谢一百万 cske。

标签: mysql sql database subquery cartesian-product


【解决方案1】:

您的子查询中似乎未选择“allocation_id”列。 在子查询选定列中添加此列并检查。

SELECT 
   daf.id as affiliate_id,
   daf.name as affiliate_name,
   dal.name as allocation_name,
   dal.id as allocation_id,
   dal.allocation,dal.price
FROM 
     degreeamerica.affiliates daf,degreeamerica.allocations dal
JOIN 
     (select pap.lead_price,pap.live, allocation_id from paul.affiliates_price pap) pafp  
ON (dal.id=pafp.allocation_id and daf.id=pafp.affiliate_id) 
ORDER BY daf.id;

【讨论】:

    猜你喜欢
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多