从相关表中获取值

时间:2017-12-06 18:57:23

标签: php mysql sql activerecord yii2

我试图找到一个有2个城市的路线。我有桌子"路线","城市"和" route_city"。输入时我有两个城市ID(来自和来)。 我的桌子:

城市

id name
1  Kiev
2  Rome

路线

id name
1  Kiev-Rome
2  Rome-Kiev

route_city

id route_id city_id sort
1         1        1   1
2         1        2   2
3         2        2   1
4         2        1   2

我试过了:

SELECT `route_id` FROM `route_city` WHERE (`route_city`.`city_id` IN ('1', '2')) GROUP BY `route_city`.`route_id`

如果我从=基辅到罗马,我会得到两条路线。

1)我如何才能获得一条路线?

2)我如何使用ActiveRecord在Yii2 Framework中创建此查询?

2 个答案:

答案 0 :(得分:0)

是您sortfrom代码的to列?像这样:如果sort = 1,它是from,如果sort = 2,它是to

如果是,从=基辅到罗马你可以做:

SELECT `route_id` FROM `route_city` WHERE (`route_city`.`city_id` IN ('1', '2')) AND `route_city`.`sort`=1 GROUP BY `route_city`.`route_id`

对于Yii,我无法提供任何帮助!

答案 1 :(得分:0)

无法使用此表结构查找route。需要从另一个表或更改结构中获取它。