pix*_*cks 0 mysql sql sql-update
我有以下返回数据的 SELECT 语句,示例如下:
SELECT performers.ID,
performers.Name,
COUNT(*) AS CountOfDeals,
COUNT(DISTINCT(deals.Name)) AS CountOfAliases
FROM deals RIGHT JOIN performers
ON deals.name LIKE CONCAT('%', performers.name, '%')
WHERE performers.ID IN ( 27952, 27951, 27950, 27949, 27948 )
GROUP BY Name;
Run Code Online (Sandbox Code Playgroud)
返回的数据示例:
ID Name CountOfDeals CountOfAliases
27952 Christine Hoberg 1 0
27951 Indian Jewelry 1 0
27952 Kinky Friedman 5 3
27949 KJ-52 1 0
27960 River Whyless 1 0
Run Code Online (Sandbox Code Playgroud)
我想将其与以下 UPDATE 语句结合起来
UPDATE performers
SET RawAliasCount = CountOfAliases,
RawDealCount = CountOfDeals
WHERE ID = ?
Run Code Online (Sandbox Code Playgroud)
运行更新语句所需的所有值都在上面的 select 语句中返回,因此希望这应该非常简单。
谢谢。
update与以下一起使用join:
UPDATE performers p JOIN
(SELECT performers.ID, performers.Name, COUNT(*) AS CountOfDeals,
COUNT(DISTINCT(deals.Name)) AS CountOfAliases
FROM deals RIGHT JOIN
performers
on deals.name LIKE CONCAT('%', performers.name, '%')
WHERE performers.ID IN (27952, 27951, 27950, 27949, 27948)
GROUP BY Name
) pp
ON pp.id = p.id
SET RawAliasCount = pp.CountOfAliases,
RawDealCount = pp.CountOfDeals;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3483 次 |
| 最近记录: |