我要基于选择(?)的结果联接两个表
我想获取表A中具有特定distance
和unique_id
的用户的pos_id
值,并将它们与表B order_id
我有这2张桌子:
表A具有字段uniq_id
和pos_id
。
+-----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| unique_id | varchar(30) | YES | | NULL | |
| time_stamp | datetime | YES | | NULL | |
| start_id | int(20) | YES | | NULL | |
| end_id | int(20) | YES | | NULL | |
| pos_id | int(20) | YES | | NULL | |
+-----------------+-------------+------+-----+---------+-------+
TableB具有order_id
和distance
+---------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------+------+-----+---------+----------------+
| order_id | int(11) | NO | PRI | NULL | auto_increment |
| latitude | double | YES | | NULL | |
| longitude | double | YES | | NULL | |
| distance | double | YES | | NULL | |
+---------------+---------+------+-----+---------+----------------+
我用过滤器形式A uniq_id
得到了pos_id
(例如'user1'),并将其与B的order_id
结合起来以得到相应的disntace
值< / p>
我为此感到厌倦,但并没有真正让我到达那里。
select distance from B
join A
on A.unique_id='user1'
我想从表B中获取distance
值,但我现在要获取的只是全部距离值乘以3作为输出。
编辑一些示例数据: 表A
+-----------+---------------------+----------+--------+----------------+
| unique_id | time_stamp | start_id | end_id | pos_id |
+-----------+---------------------+----------+--------+----------------+
| user1 | 2019-04-24 14:40:15 | NULL | NULL | 1 |
| user1 | 2019-04-24 14:40:15 | NULL | NULL | 2 |
| user1 | 2019-04-24 14:40:15 | NULL | NULL | 3 |
+-----------+---------------------+----------+--------+----------------+
表B
+-----------+---------------------+-----------------+---------------+
| order_id | latitude | longitude | disntace |
+-----------+---------------------+-----------------+---------------+
| 1 | 2.02347 | 11.438619613647 | 1.2764224 |
| 2 | 13.20476 | -57.17261 | 29.082539 |
| 3 | -31.60947 | 51.72054 | 13.158945 |
| 4 | -56.01120 | -154.53439 | 33.69381 |
| 5 | 29.68856 | -130.61082 | 25.275803 |
| 6 | 48.03862 | 164.51725 | 14.42865 |
+-----------+---------------------+-----------------+---------------+
答案 0 :(得分:0)
为此,您需要一个外键..... 我认为 pos_id 是 order_id 中的tableB参考价列的外键。 那么您的查询就像
select B.distance from A
inner join B on (A.pos_id= B. order_id)
where A.unique_id='user1'
答案 1 :(得分:0)
已解决:
select distance from B
join A
ON a.pos_id = b.order_id AND A.unique_id='user1'
答案 2 :(得分:-1)
我几个月前才开始学习sql,但是在示例“ JOIN”表中按1字段包含2字段仍然看不到。也许你需要像这样写东西
SELECT distance From A,B Where a.unique_id = 'user1';
尝试一下,但不要轻易判断我:)