php - PHP+MySQL 支持这种类型的虚拟表连接吗?

标签 php mysql

我使用一种专有的服务器端语言,该语言位于 Oracle 数据库之上的一层。使用这种语言,您可以使用虚拟表来获取填充了数据的现有记录结构,并对连接到它的记录结构运行查询,就好像它是一个表一样。

这是一个简单的例子:

    //DECLARE THE RECORD STRUCTURE
    record data_out (
        1 prsnl [*]
            2 person_id = f8
            2 full_name = vc
            2 position = vc
            2 status = vc
            2 last_access_dt_tm = vc
            2 role [*]
                3 role_name = vc
                3 role_id = f8  
    ) with persistscript

    //QUERY PEOPLE
    select into "NL:"
    from person p
    where p.whatever_field = "QUALIFIER"
    detail

        a = a + 1
        stat = alterlist(data_out->prsnl, a)

        data_out->prsnl[a]->person_id = p.person_id
        data_out->prsnl[a]->full_name = p.name_full_formatted
        data_out->prsnl[a]->position = p.position

    with time=10

    //USE A DUMMY TABLE TO PULL IN MORE DATA FOR EACH PERSON
    select into "NL:"
    from (dumt d with seq = size(data_out->prsnl,5))
        ,rnd_role_def rrd
        ,rnd_r_assign_hx rah
    plan d
    join rah
        where rah.team_id = data_in->team_id
        and rah.prsnl_id = data_out->prsnl[d.seq]->person_id
        and rah.handoff_dt_tm > cnvtdatetime(curdate-90,curtime)
    join rrd
        where rrd.role_id = rah.role_id
    order by d.seq, rrd.role_name
    head d.seq
        i = 0
    head rrd.role_name
        i = i + 1
        stat = altlist(data_out->prsnl[d.seq]->role, i)

        data_out->prsnl[d.seq]->role[i]->role_id = rrd.role_id
        data_out->prsnl[d.seq]->role[i]->role_name = rrd.role_name

    with time=10

PHP+MySQL有这样的东西吗?如果是这样,可以以某种方式向我指出包含更多信息或操作方法的链接。谷歌搜索没有为我找到任何东西——可能搜索了错误的关键字。

最佳答案

使用临时表:

CREATE TEMPORARY TABLE temp1

临时表将在当前 session 中持续存在。您可以通过正常的 CREATE TABLE 语法定义临时表的字段:

CREATE TEMPORARY TABLE temp1(
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(50),
)

...或者您可以创建临时表并允许查询数据定义列:

CREATE TEMPORARY TABLE temp1;
INSERT INTO temp1
  SELECT id, name FROM normal_table

文档

关于php - PHP+MySQL 支持这种类型的虚拟表连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11547430/

相关文章:

php - CodeIgniter:未定义的属性:stdClass::$CategoryID

mysql - 压缩巨大的文本数据以便与 PHP 应用程序一起使用

PHP 数学转换金额

PHP Soap 客户端 : How call WebService with Derived class as parameter?

php - 在 Laravel 的 URL 中使用破折号而不是下划线

MySQL 查询说明 : Index choosing when the query has "WHERE" as well as "ORDER BY"

php - 如何在不覆盖现有文件的情况下在 PHP 中复制文件?

php - 你如何使文本字段自动添加 - 在某些数字之后

php - mysql 计数不同并使用 php 获取结果

mysql - 获取两个不同过程的总和