2013-02-22 61 views
0

我有這個查詢的mysql錯誤Subquery returns more than 1 rowGROUP_CONCAT。爲什麼我會出現這個錯誤,我該如何解決這個問題?爲什麼mysql在子查詢的組concat上返回錯誤?

select SQL_CALC_FOUND_ROWS s.url, 
     GROUP_CONCAT(
     (select name 
      from labels_data ld, 
        labels l 
      where ld.id=l.site_id=s.id 
     limit 2), 
     ', '), 
... more valid sql code ... 
as labels from sites s 

回答

3

您需要將group_concat放入子查詢中。子查詢返回多行(至少通常)。它有一個limit 2

(select group_concat(name , ', ') 
    from labels_data ld join 
     labels l 
     on ld.id=l.site_id=s.id 
    limit 2 
) 

我還建議您使用正確的ANSI連接語法。

+0

+1 - 但JOIN語法正確嗎? ld.id = l.site_id = s.id?下面是一個示例小提琴移動到WHERE子句:http://sqlfiddle.com/#!2/8dd09/1 – sgeddes 2013-02-22 14:22:51