-1

想从下面的表结构中得到以下结果(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   |
+-----+-----+-------+------+
4

1 回答 1

0

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

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

于 2012-10-24T19:22:17.820 回答