0
我有MySQL查询,用于选择用户名和他们的知识(可能不止一个)。如何在查询中对结果进行分组?
它返回这样的事情...
array(5) {
[0]=>
array(5) {
["user_id"]=>
string(2) "30"
["name"]=>
string(6) "foo1"
["knowledge"]=>
string(15) "Basic Materials"
}
[1]=>
array(5) {
["user_id"]=>
string(2) "33"
["name"]=>
string(6) "foo2"
["knowledge"]=>
string(15) "Basic Materials"
}
[2]=>
array(5) {
["user_id"]=>
string(2) "34"
["name"]=>
string(10) "foo3"
["knowledge"]=>
string(9) "Eating"
}
[3]=>
array(5) {
["user_id"]=>
string(2) "34"
["name"]=>
string(10) "foo3"
["knowledge"]=>
string(9) "Financial"
}
[4]=>
array(5) {
["user_id"]=>
string(2) "34"
["name"]=>
string(10) "foo3"
["knowledge"]=>
string(8) "Services"
}
}
正如你所看到的,在这个例子中,它的回报五个条目。但是,其中三个有重复的ID(和名称)。我正在寻找一种方式来回报只有三个条目是这样的...
是否有可能在查询呢?
array(5) {
[0]=>
array(5) {
["user_id"]=>
string(2) "30"
["name"]=>
string(6) "foo1"
["knowledges"]=>
array(1) {
[0] => string(15) "Basic Materials"
}
}
[1]=>
array(5) {
["user_id"]=>
string(2) "33"
["name"]=>
string(6) "foo2"
["knowledges"]=>
array(1) {
[0] => string(15) "Basic Materials"
}
}
[2]=>
array(5) {
["user_id"]=>
string(2) "34"
["name"]=>
string(10) "foo3"
["knowledges"]=>
array(1) {
[0] => string(15) "Eating"
[1] => string(15) "Financial"
[2] => string(15) "Services"
}
}
}
我看到其他选项来处理服务器端的结果。
下面是该查询的样子:
SELECT `profiles`.`user_id`, `users`.`name`, `users`.`surname`, `users`.`country`, `profile_knowledges`.`knowledge`
FROM `profiles`
JOIN `users`
ON (`users`.`id` = `profiles`.`user_id`)
JOIN `profile_knowledges`
ON (`profile_knowledges`.`profile_id` = `profiles`.`id`)
谢谢,这是我的想法。 [This](http://pastie.org/2567903)是我想出来的......如何用ORM实现这一点? :) – daGrevis