Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从2个表中选择(Kohana框架)_Php_Mysql_Kohana - Fatal编程技术网

Php 从2个表中选择(Kohana框架)

Php 从2个表中选择(Kohana框架),php,mysql,kohana,Php,Mysql,Kohana,我有两个数据结构相同的表 例: 如何从两个表中获取Kohana框架数据 然后按天计算结果? 另外,我如何将一个字符串替换为substr,并将该字符串的其余部分相加(这是一个数字?请查看示例中的package_credit_uuu行) 例如,如果我有以下数据: Table1: (1, 200, "package_credit_300", "12.12.12 12:02:34"), (2, 50, "package_credit_50", "12.12.12 15:17:02"), (2, 5

我有两个数据结构相同的表

例:

如何从两个表中获取Kohana框架数据 然后按天计算结果? 另外,我如何将一个字符串替换为substr,并将该字符串的其余部分相加(这是一个数字?请查看示例中的package_credit_uuu行)

例如,如果我有以下数据:

Table1: 
(1, 200, "package_credit_300", "12.12.12 12:02:34"), 
(2, 50, "package_credit_50", "12.12.12 15:17:02"), 
(2, 50, "package_credit_50", "13.12.12 16:12:12")

Table2: 
(1, 50, "package_credit_50", "13.12.12 12:02:34"), 
(2, 50, "package_credit_50", "13.12.12 15:17:02"), 
(2, 200, "package_credit_300", "14.12.12 16:12:12")
我想得到这样的东西:

Date: 12.12.12 - Credit: 350 - Paid: 250
Date: 13.12.12 - Credit: 150 - Paid: 150
Date: 14.12.12 - Credit: 300 - Paid: 200

在Kohana中使用ORM或ActiveRecord无法做到这一点。您需要执行此自定义sql

SELECT Date(t.`date`)                                    AS `Date`, 
       Sum(Cast(Substring(t.`package`, 16) AS UNSIGNED)) AS `Credit`, 
       Sum(t.pay_amount)                                 AS `Paid` 
FROM   (SELECT * 
        FROM   table1 
        UNION 
        SELECT * 
        FROM   table2) AS `t` 
GROUP  BY `Date` 
ORDER  BY `Date` ASC 
试试这个

   SELECT Substring(t.`date`,1,8)                        AS dates, 
   Sum(Cast(Substring(t.`package`, 16) AS UNSIGNED)) AS `Credit`, 
   Sum(t.pay_amount)                                 AS `Paid` 
    FROM   (SELECT * 
    FROM   table1 
    UNION 
    SELECT * 
    FROM   table2) AS `t` 
    GROUP  BY dates 
    ORDER  BY dates ASC 

日期不是mysql日期格式。是的,但它不是我使用的值。这只是一个示例,因此您可以忽略格式:)
   SELECT Substring(t.`date`,1,8)                        AS dates, 
   Sum(Cast(Substring(t.`package`, 16) AS UNSIGNED)) AS `Credit`, 
   Sum(t.pay_amount)                                 AS `Paid` 
    FROM   (SELECT * 
    FROM   table1 
    UNION 
    SELECT * 
    FROM   table2) AS `t` 
    GROUP  BY dates 
    ORDER  BY dates ASC