PHP和MYSQL选择5个表和多个行作为单个数组

时间:2012-10-24 19:08:46

标签: php mysql select

希望从下面的表结构(MYSQL + PHP)

得到以下结果
array[0][name]1,[desc]red,[title]hero,[desc]strong,[desc2]smells,[img][0]red1,[img][1]red2,[img][2]red3,ext[0].jpg,[ext][1].gif,[ext][2].png,[count][0]253,[count][1]211,[count][2]21,[count][3]121,[dist][0]5,[dist][1]5,[dist][2]12,[dist][3]2,[score][0]2,[score][1]3,[score][2]1,[score][3]5,[score][4]4,[val][0]5,[val][1]1,[val][2]4,[val][3]3,[val][4]4

我对简单的SELECT,JOIN和GROUP_CONCAT的问题是在选择所有图像后值重复。

我尝试了其他各种方法,例如在PHP中按行选择数据并结合使用foreach循环,但最终会出现大量重复内容,而且看起来非常混乱。

我也想把它分成多个选择而不是使用一个,但我真的想知道是否可以用一个选择完成。

有人可以帮助我选择MYSQL吗?谢谢

game
+-----+----------+
| pid | name     |
+-----+----------+
|   1 |  red     |
|   2 |  green   |
|   3 |  blue    |
+-----+----------+

detail
+-----+------+--------+-------+--------+
|  id | pid  | title  |  desc | desc 2 |
+-----+------+--------+-------+--------+
|   1 |  1   | hero   |strong | smells |
|   2 |  2   | prince |nice   | tall   |
|   3 |  3   | dragon |big    | green  |
+-----+------+--------+-------+--------+

image
+-----+-----+-----+----+
|  id | pid | img |ext |
+-----+-----+-----+----+
|   1 |  1  | red1|.jpg|
|   2 |  1  | red2|.gif|
|   3 |  1  | red3|.png|
+-----+-----+-----+----+

devmap
+-----+-----+-------+------+
|  id | pid | count | dist |
+-----+-----+-------+------+
|   1 |  1  | 253   |  5   |
|   2 |  1  | 211   |  5   |
|   3 |  1  | 21    | 12   |
|   4 |  1  | 121   |  2   |
+-----+-----+-------+------+

stats
+-----+-----+-------+------+
|  id | pid | scrore| val  |
+-----+-----+-------+------+
|   1 |  1  | 2     |  5   |
|   2 |  1  | 3     |  1   |
|   3 |  1  | 1     |  4   |
|   4 |  1  | 5     |  3   |
|   5 |  1  | 4     |  3   |
+-----+-----+-------+------+

1 个答案:

答案 0 :(得分:0)

当你进行一个涉及表之间超过1:1映射的JOIN时,你将会有重复的数据,并且无法在查询中解决这个问题。

您可以将其分解为多个选择,或者您可以遍历结果集并减去您不想要的任何重复信息。