首页 > 解决方案 > 我可以选择一个虚拟表,它的数据并将其用于 php 的其他内容吗?

问题描述

是否可以使用 JOIN 创建一个虚拟表,然后在使用 phpmyadmin 和 php 时将该虚拟表用作 SELECT FROM 的表?如果是这样,我该如何使用 php 从该表中进行选择?

编辑:

我尝试使用view myview as <your select statement>所说的创建

但我收到一个错误:atal 错误:未捕获的错误:调用 bool 上的成员函数 fetch_assoc()

这是代码:

        $sqlEC = "create view myview as <SELECT hobio_id, hobio_pav2 FROM zmogaus_hobiai LEFT JOIN hobiai ON zmogaus_hobiai.hobio_id = hobiai.id WHERE zmogaus_hobiai.zmogaus_id =".$roww[0].">";
        $resultEC = $conn -> query($sqlEC);
        $var = mysqli_query($conn, $sqlEC);
        $rowEC = $resultEC -> fetch_assoc();
        $sqlH = "select id, hobio_pav from ".$sqlEC." where not exists (select hobio_id, hobio_pav2 from  zmogaus_hobiai where zmogaus_hobiai.hobio_id = hobiai.id and zmogaus_hobiai.hobio_pav2 = hobiai.hobio_pav);";
        $resultH = $conn -> query($sqlH);
        $rowH = $resultH -> fetch_assoc();

标签: phpmysqlsqljoinsql-view

解决方案


您正在描述一个 SQL 视图。

这是一个由 SQL 查询定义的虚拟表,您可以像查询真实的持久表一样查询该表。数据库不物理存储视图,仅存储其定义。当查询视图时,数据库执行定义底层视图的 SQL 语句,并从底层表返回实际数据。

如果您有 SQL查询,则可以使用以下语法SELECT创建视图:create view

create view myview as <your select statement>

然后,您可以使用常规select语句查询视图:

select * from myview

推荐阅读