我有一个类别表和一个s_category表。每个类别都可以有许多s_category 例如:
表1:类别
------------------------------ <br/>
| id_category | name_category |
| ----------------------------
| 1 | vehiculs |
------------------------------ <br/>
表2:sous_category
----------------------------------------- <br/>
| id_scategory | name_scategory | id_cat |
| --------------------------------------- <br/>
| 1 | cars | 1 |
| ---------------------------------------- <br/>
| 2 | motors | 1 |
------------------------------------------ <br/>
我用这个:
SELECT category.name_category,sous_category.name_scategory
FROM category
JOIN sous_category
ON category.id_category=sous_category.id_cat ';
但是OUTPUT与类别标题重复:
array
0 =>
array
'name' => string 'vehiculs' (length=8)
'name_s' => string 'cars' (length=4)
1 =>
array
'name' => string 'vehiculs' (length=8)
'name_s' => string 'motors' (length=6)
2 =>
array
'name' => string 'vehiculs' (length=8)
'name_s' => string 'pieces' (length=6)
3 =>
array
'name' => string 'electronics' (length=11)
'name_s' => string 'tv' (length=2)
4 =>
array
'name' => string 'electronics' (length=11)
'name_s' => string 'mobile' (length=6)
我只想看到:
VEHICULES :
电子:
在顶部menuBar中使用它
答案 0 :(得分:0)
这就是SQL的结果集。没有办法解决这个问题。如果您想在PHP中进行调整,请按以下方式进行:
假设你想要一个如下所示的数组:
array(
"Vehicules" => array(
"cars",
"motors",
"piece",
),
"Electronics" => array(
"TV",
"mobile",
),
)
您可以遍历结果集并构建此数组:
$final = array();
foreach($results as $row)
$final[$row["name"]][] = $row["name_s"];
答案 1 :(得分:0)
这里有一个基本的概念错误。 MySQL实现了关系代数。
这是一个&#34;代数&#34;因为它具有类型,该类型的值以及采用该类型的值并生成该类型的其他值的运算符。因此,加法,减法和乘法在整数上创建代数,因为将整数相加,相减和相乘只会产生更多的整数。除法是不的一部分,因为两个整数的比率不一定是整数。
这是一个&#34;关系代数&#34;它所使用的类型是&#34;关系&#34;。可以将关系视为一个表,其中列被命名,行被编号:
+---------+-------------+--------+
| | name | name_s |
+---------+-------------+--------+
| 1 | vehicles | cars |
| 2 | vehicles | motors |
| 3 | vehicles | pieces |
| 4 | electronics | tv |
| 5 | electronics | mobile |
+---------+-------------+--------+
重要的是要记住:无论你做什么,无论你扭曲和扭曲,SQL表达式的结果都只是另一种关系。
你的问题是,你想要一个不是关系的结构。它是树或层次结构或类似的东西,SQL不会这样玩。
如果你想要一棵树,你必须在后期处理中创建它(在你的情况下,用PHP代码,并且上帝可以怜悯你的灵魂)。
强迫你的两个技术要点: