我想用另一个表中的查询更新一个表。
我想从两个表的组合中获取混合信息。 然后使用它们更新两个表之一。
这是我所做的:
UPDATE commande as C,
(
SELECT CONCAT (input_hauteur_sous_collecteur, ' x ', input_largeur_hors_tout, ' x ', input_epaisseur, ' - ', input_pas_ailettes)
AS 'ligne_sage'
FROM commande as C, faisceaux_ta as F
WHERE C.commande_type_faisceaux = 'TA'
AND C.commande_id_faisceaux = F.id
) AS src
SET
C.ligne_sage = src.ligne_sage
WHERE
C.commande_type_faisceaux = "TA"
/ *并且我让MySQL运行命令,并且在没有错误通知的情况下永远不会结束... * /
EDIT:实际上,它最终可以在5分钟以上的时间内工作,问题是我在每行中具有相同的值(SELECT结果表的第一行)...
我该怎么做才能使其正常工作? (SELECT CONCAT子查询正常运行)
答案 0 :(得分:0)
之所以这样,是因为您没有在表之间过滤结果。您需要在where子句中添加和过滤。有点像(请参阅最后一行)。我没有你的桌子defs:-(
UPDATE commande as C,
(
SELECT CONCAT (input_hauteur_sous_collecteur, ' x ', input_largeur_hors_tout, ' x ', input_epaisseur, ' - ', input_pas_ailettes)
AS 'ligne_sage'
FROM commande as C, faisceaux_ta as F
WHERE C.commande_type_faisceaux = 'TA'
AND C.commande_id_faisceaux = F.id
) AS src
SET
C.ligne_sage = src.ligne_sage
WHERE
C.commande_type_faisceaux = "TA"
AND c.commandId = src.commandId