gpt4 book ai didi

mysql - 通过不唯一的 id 将数据连接在一起

转载 作者:行者123 更新时间:2023-11-29 00:51:22 25 4
gpt4 key购买 nike

假设我有两个表,如下所示:

mysql> show columns from ping;
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| ping_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| msg_size | int(10) unsigned | YES | | NULL | |
| version | int(10) unsigned | YES | | NULL | |
| num_points | int(10) unsigned | YES | | NULL | |
| lat_deg | float | YES | | NULL | |
| lat_min | float | YES | | NULL | |
| long_deg | float | YES | | NULL | |
| long_min | float | YES | | NULL | |
| bearing | float | YES | | NULL | |
| pitch | float | YES | | NULL | |
| roll | float | YES | | NULL | |
| heave | float | YES | | NULL | |
| tide | float | YES | | NULL | |
| hour | int(10) unsigned | YES | | NULL | |
| min | int(10) unsigned | YES | | NULL | |
| sec | int(10) unsigned | YES | | NULL | |
| day | int(10) unsigned | YES | | NULL | |
| month | int(10) unsigned | YES | | NULL | |
| year | int(10) unsigned | YES | | NULL | |
| posx | float | YES | | NULL | |
| posy | float | YES | | NULL | |
| pingtime | int(10) unsigned | YES | | NULL | |
+------------+------------------+------+-----+---------+----------------+
22 rows in set (0.02 sec)

和:

mysql> show columns from point;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| point_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| ping_id | int(10) unsigned | NO | | NULL | |
| x | float | NO | | NULL | |
| y | float | NO | | NULL | |
| texture | int(10) unsigned | NO | | NULL | |
| fish | int(10) unsigned | NO | | NULL | |
+----------+------------------+------+-----+---------+----------------+

表 ping 的 Ping_id 是唯一的。然而,点的 ping_id 不是。 IE每个ping_id有几个点。我需要选择数据,以便每个 ping 都有几个 x,y 列(点数不是常数)。 IE,我正在寻找如下所示的输出:

+----------+------------------+-----------+-----+-----+----+------+----+----+-----+----+
| ping_id | lat_deg | lon_deg | x1 | y1 | x2 | y2 | x3 | y3 | x4 | y4 |
+----------+------------------+------------+-----+-----+----+-----+----+----+----+-----+

最佳答案

你应该加入表格:

SELECT pg.ping_id, lat_deg, long_deg, p.x, p.y 
FROM ping pg
JOIN point p ON p.ping_id = pg.ping_id

并处理结果以获得分组点,例如在 PHP 中:

$pings = array();
foreach($results as $row){
$pings[$row['ping_id']][] = $row;
}

关于mysql - 通过不唯一的 id 将数据连接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com