2017-04-14 15:05:28 4536次浏览 2条回答 0 悬赏 50 金钱

有两个相同结构的数据表,怎么用union查询字句合并两个表的数据,在一个页面显示。

最佳答案

  • johnny1991 发布于 2017-04-14 15:41 举报

    1.首先获得一个Query 对象,$query,然后生成一个需要union的Query对象$unionQuery,
    $query->union = [
    [

      'query'=>$unionQuery,
    

    ],
    ];
    就可以了

    8 条回复
    回复于 2017-04-14 15:50 回复

    是不是这样,$query是第一个表查询,$unionQuery是第二个表的?

    回复于 2017-04-14 15:53 回复

    是的,都是Query对象,源码参考,yii\db\QueryBuilder的buildUnion方法

    回复于 2017-04-14 15:58 回复

    它是怎么找到第二个表的,不是很懂

    回复于 2017-04-14 16:02 回复

    假设Post,Article是两个activeRecord类,
    $query = Post::find();
    $unionQuery = Article::find();
    $query->union = [
    [
    'query'=>$unionQuery,
    ]
    ];
    这样及可以了

    回复于 2017-04-14 16:03 回复

    比如我在moel下的postsearch继承post查出了第一个表的内容,第二个表他找不到啊

    回复于 2017-04-14 16:04 回复

    好的 我试试

    回复于 2017-04-14 16:08 回复

    use Article,不就可以了吗?如果这个有问题,请教一下你周边的人

    回复于 2017-04-14 16:16 回复

    解决了 谢谢

您需要登录后才可以回答。登录 | 立即注册
xupengfei
助理

xupengfei

注册时间:2017-03-30
最后登录:2017-06-06
在线时长:8小时59分
  • 粉丝2
  • 金钱25
  • 威望0
  • 积分105

热门问题