如何从子查询INSIDE sql语句mysql中获取多列

如何从子查询INSIDE sql语句mysql中获取多列,mysql,sql,Mysql,Sql,事实上,我为我的问题找到了很多解决方案,但我不知道如何应用于我的问题 我的问题是我有以下SQL语句: SELECT `tblacc`.`AccID` AS xAccID, `tblacc`.`AccName` AS xAccName, `tblprod`.`ProductID` AS xProdID,

事实上,我为我的问题找到了很多解决方案,但我不知道如何应用于我的问题

我的问题是我有以下SQL语句:

SELECT
                                `tblacc`.`AccID` AS xAccID,
                                `tblacc`.`AccName` AS xAccName,
                                `tblprod`.`ProductID` AS xProdID,
                                `tblprod`.`ProductName` AS xProdName,
                                (
                                SELECT
                                    tblproductsprices.PriceID
                                FROM
                                    tblproductsprices
                                WHERE
                                    tblproductsprices.PriceProductID = `tblprod`.`ProductID` AND `tblproductsprices`.`PriceResoID` = `tblacc`.`AccID`
                            ) AS xPriceID,
                            (
                            SELECT
                                tblproductsprices.PriceValue
                            FROM
                                tblproductsprices
                            WHERE
                                tblproductsprices.PriceProductID = `tblprod`.`ProductID` AND `tblproductsprices`.`PriceResoID` = `tblacc`.`AccID`
                            ) AS xPriceValue,
                            (
                            SELECT
                                tblproductsprices.PricePallet
                            FROM
                                tblproductsprices
                            WHERE
                                tblproductsprices.PriceProductID = `tblprod`.`ProductID` AND tblproductsprices.PriceResoID = `tblacc`.`AccID`
                            ) AS xPalletPrice
                            FROM
                                tblaccounts tblacc,
                                tblproducts tblprod
                            WHERE
                                tblacc.`AccCat` = 'agent'
                            ORDER BY
                                tblacc.AccName,
                                tblprod.ProductName
我需要的是将以下部件替换为一个部件:

(
                                SELECT
                                    tblproductsprices.PriceID
                                FROM
                                    tblproductsprices
                                WHERE
                                    tblproductsprices.PriceProductID = `tblprod`.`ProductID` AND `tblproductsprices`.`PriceResoID` = `tblacc`.`AccID`
                            ) AS xPriceID,
                            (
                            SELECT
                                tblproductsprices.PriceValue
                            FROM
                                tblproductsprices
                            WHERE
                                tblproductsprices.PriceProductID = `tblprod`.`ProductID` AND `tblproductsprices`.`PriceResoID` = `tblacc`.`AccID`
                            ) AS xPriceValue,
                            (
                            SELECT
                                tblproductsprices.PricePallet
                            FROM
                                tblproductsprices
                            WHERE
                                tblproductsprices.PriceProductID = `tblprod`.`ProductID` AND tblproductsprices.PriceResoID = `tblacc`.`AccID`
                            ) AS xPalletPrice

要在一个子查询中以相同的条件获取所有列?

我不知道您的数据模式。您是否尝试使用表tblproductsprices进行交叉连接(第一次)和左连接

SELECT
    `tblacc`.`AccID` AS xAccID,
    `tblacc`.`AccName` AS xAccName,
    `tblprod`.`ProductID` AS xProdID,
    `tblprod`.`ProductName` AS xProdName,
    tblproductsprices.PriceID AS xPriceID,
    tblproductsprices.PriceValue AS xPriceValue,
    tblproductsprices.PricePallet AS xPalletPrice
    
    FROM tblaccounts tblacc

    CROSS JOIN tblproducts tblprod
    
    LEFT JOIN tblproductsprices ON tblproductsprices.PriceProductID = `tblprod`.`ProductID` AND `tblproductsprices`.`PriceResoID` = `tblacc`.`AccID`
    
    WHERE tblacc.`AccCat` = 'agent'

    ORDER BY tblacc.AccName, tblprod.ProductName;

Hi join可用于子查询中使用的表示例查询可如下所示- 挑选
tblacc
AccID
作为xAccID,
tblacc
AccName
作为xAccName,
tblprod
ProductID
作为xProdID,
tblprod
ProductName
作为xProdName, tblprodprices.PriceID为xPriceID, tblprodprices.PriceValue作为xPriceValue, tblprodprices.PRICE托盘作为xPalletPrice 从…起 tblacc计数tblacc, TBL产品tblprod, TBL产品TBL产品价格 哪里 tblacc.
AccCat
=“代理” 和tblprodprices.PriceProductID=
tblprod
ProductID
和tblprodprices.PriceResoID=
tblacc
AccID
订购人 tblacc.AccName,
tblprod.ProductName

请提供示例数据、所需结果以及您想要做的事情的清晰解释。非常感谢您,我想要的是欢迎您@Hamada,我很高兴我帮助了您。