2017-08-25 297 views
-5
SELECT *, (SELECT fsi.active 
      FROM filters_sorts AS fsi 
      WHERE fs.`active`= '1' AND fs.`parent` !='0') 
FROM filters_sorts AS fs 
WHERE fs.`active`= '1' AND fs.`parent` ='0'; 

table imageSQL查询返回 “子查询返回多个1行”

+1

[如何提问?](https://stackoverflow.com/help/how-to-ask) – Spectarion

+1

参加[tour](https://stackoverflow.com/tour)并通读[help center] (https://stackoverflow.com/help),以改善您的问题 –

+0

实际上我需要从同一个表的内部查询更多的行。 –

回答

0

使用下面的查询,而不是:如果你想有一个单一的

SELECT fs1.name menuName, fs1.id menuId, fs2.id subMenuId, fs2.name subMenuName 
FROM filters_sorts fs1 
LEFT JOIN filters_sorts fs2 ON fs1.id = fs2.parent 
WHERE fs1.parent=0 

您可以添加所需的字段中SELECT

排一个主要类别,你可以这样做:

SELECT fs1.name menuName, fs1.id menuId, GROUP_CONCAT(fs2.name) subMenuName 
FROM filters_sorts fs1 
LEFT JOIN filters_sorts fs2 ON fs1.id = fs2.parent 
WHERE fs1.parent=0 
GROUP BY fs1.id 
+0

menuName menuId subMenuId subMenuName ---------------- - ------ --------- -------------------- 价格8 9小于500 价格8 10₹500到$ 1000 受欢迎程度1(NULL)(NULL)如果可能,我需要这样的“价格8小于500,$ 500到$ 1000”为每个价格和基于父母身份证逗号分隔的subMenuName!谢谢@Anshuman Jaiswal –

+0

是的,你将不得不在你要使用这个结果的客户端做一些操作。从SQL你将无法找到'树结构 –

+0

更新的答案可能是你需要这个,这里所有的子菜单将逗号分隔 –