如何在PHP中的SELECT语句中执行子查询?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在PHP中的SELECT语句中执行子查询?相关的知识,希望对你有一定的参考价值。

如何在php中的SELECT语句中执行子查询?

例如(我知道有更好的方法来编写此查询,无需指出它):

SELECT
  product_name
FROM
  (SELECT * FROM product)

我将如何在PHP中执行此操作?我尝试了以下查询,但它不起作用:

pg_query($conn, 'SELECT product_name FROM SELECT * FROM product')
答案

SQL标准和PostgreSQL要求FROM子句中的任何子查询都有别名,即使它未在查询中使用:

SELECT
   product_name
FROM
   (SELECT * FROM product) AS q
另一答案

根据您的任务目的,您可以创建一个SELECT子查询,但是,我不确定您的意图是什么。在你目前的帖子中,你说应该是

SELECT 
    product_name 
FROM 
    SELECT * 
    FROM product

当运行时,FROM子句被错误地使用,因为该子句可以大大减少。如果您想获得产品,可以说:

SELECT 
    product_name 
FROM 
    product

如果您试图获取产品出现在表中的时间,例如,如果产品不是主键,则可以在SELECT子句中创建子查询,如下所示:

SELECT DISTINCT
    p.product_name
    (
        SELECT 
            COUNT(*) 
        FROM 
            product prodSub 
        WHERE 
            prodSub.product_name == p.product_name
    ) AS "Occurances"
FROM 
    product p

请注意,此查询应该提供该想法,我没有测试它。请测试和验证;如有任何错误,请发帖到地址。

以上是关于如何在PHP中的SELECT语句中执行子查询?的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中where条件的嵌套子查询性能

SQL嵌套SELECT语句的用法-

第四章 MySQL高级查询

如何在 JPA Criteriabuilder Select 语句中执行子查询?

SQL(高级查询)

MYSQLupdate/delete/select语句中的子查询