执行select命令时,操作数应包含1列

时间:2014-08-20 10:36:07

标签: php mysql joomla3.0

使用Joomla whiole我正在执行查询

select p.id, (select id,building_id
 from qu21k_ets_building_widgets 
where building_id = 47) as order_id 
from qu21k_ets_buildings p 
where p.id = 47 

我在执行上述查询时遇到错误。

  

1241 - 操作数应包含1列

结果应在下面作为数组:

{

  "order_id":101,

  "building_id":1,

  "order_info":"apple related",

  "order_date":"2012-10-14 11:46:12",

  "_SQL_COL_1":

  [

    {
      "id":1001,
      "building_id":101,
      "name":"9.99"
    },
    {
      "item_id":1002,
      "building_id":101,
      "name":"19.99"
    }
  ]

}

2 个答案:

答案 0 :(得分:0)

从子查询中删除building_id,子查询中的select应包含一列。

这应该有效:

select p.id, (select id
 from qu21k_ets_building_widgets 
where building_id = 47) as order_id 
from qu21k_ets_buildings p 
where p.id = 47 

答案 1 :(得分:0)

您使用的是从属子查询,而不是最佳解决方案,而是使用连接

SELECT p.id, 
w.id AS widgetid ,
w.building_id,
CONCAT(w.id,w.building_id) AS order_id 
FROM qu21k_ets_buildings p 
JOIN qu21k_ets_building_widgets w
ON(p.id = w.building_id)
WHERE p.id = 47 AND w.building_id = 47

从中获取数据并构建数组