2017-09-01 83 views
0

下面的查询会产生一些错误:如何写多行父查询单行返回子查询子查询

$sub = '(SELECT mulitple.* FROM timezoneabbreviation AS mulitple 
     WHERE single.gmtoffset = mulitple.gmtoffset) AS sametimezone'; 
$query = "SELECT $sub,single.* FROM timezoneabbreviation AS single 
     WHERE full_name='".$full_name."' "; 
return $this->db->query($query)->row(); 

我想写与在同一个表的子查询与WHERE条件主要查询的查询产生单行,但子查询产生多行。

+0

你是什么数据结构?什么是错误(编程101:错误消息包含丰富的信息,学会阅读它们并在错误本身中进行谷歌搜索)。 –

+0

查询产生此错误操作数应包含1列(S) – noorwala

+0

如果通过在mysql中执行它检查查询它会更容易.... –

回答

0

只需使用JOIN

$query = "SELECT mulitple.*, single.* 
      FROM timezoneabbreviation AS single 
      INNER JOIN timezoneabbreviation AS mulitple 
       ON mulitple.gmtoffset = single.gmtoffset 
      WHERE single.full_name='".$full_name."'"; 
+0

这个查询产生错误“操作数应包含1列(S)” – noorwala

+0

灿你显示你的表格模式?您正在使用哪个版本的MySQL? – Neodan

+0

显示此结果在单排,但我想从innerjoin表stdClass的对象多行([abb_id] => 3 [缩写] => ACDT [FULL_NAME] =>澳大利亚中部夏令时间[位置] =>澳大利亚[时间] = > +10:30小时[gmtoffset] => 37800 [timezone_offset] => 10.5) – noorwala