mysql - 如何从子查询中获取多列 sql 语句 mysql
问题描述
实际上,我为我的问题找到了许多解决方案,但我不明白如何应用于我的问题!
我的问题是我有以下 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
以相同的条件获取一个子查询中的所有列?
解决方案
I don't know your data schema. Do you try making a CROSS JOIN (first) and a LEFT JOIN with table 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;
推荐阅读
- java - 如何使用反射访问从抽象类继承的字段?
- ssrs-2008 - 如何在 SSRS 中获得第二大值
- r - r - 当原始列中的条件满足时如何创建多个新列
- android - 前台服务还是标准服务?
- core-data - NSPredicate 检测子查询中的非空关系
- asp.net - 剑道 UI 编辑器复制
- amazon-web-services - 在 AWS S3 中使用标签进行对象级删除是否有效?
- android - 电子邮件未注册。电子邮件检查,电子邮件验证 kotlin
- ajax - 如何检查 JSF 应用程序中的有效会话?
- regex - 正则表达式:在由边界定义的组中,仅在 XX 时匹配