我有4张桌子
1 / liste-articles
2 / cmd-moy-j
3 / cmd-药物
4 / cmd-alimentation
首先,我需要检查一下“cmd-moy-j”。“Famille”是否为空。如果是这样,我需要检查“cmd-moy-j”。“代码文章”是否存在于“cmd-medicaments”或“cmd-alimentation”或“cmd-consommables”表中,以便添加此“代码文章”到一个名为“liste-articles”的表。您可以在以下算法中查看详细信息
我想这样做:(只有一个MySQL请求)
如果'cmd-moy-j.Famille'=“”(是空的)
然后{
if('cmd-moy-j.Code Article'存在于'cmd-medicaments')
then INSERT a new row to 'liste-articles' table with: liste-articles.Famille = "MEDICAMENT" liste-articles.Code Article = cmd-moy-j.Code Article
else if('cmd-moy-j.Code Article'存在于'cmd-alimentation')
then INSERT a new row to 'liste-articles' table with: liste-articles.Famille = "ALIMENTATION" liste-articles.Code Article = cmd-moy-j.Code Article
否则 使用以下命令将新行插入“liste-articles”表: liste-articles.Famille =“NULLL” liste-articles.Code Article = cmd-moy-j.Code Article }
感谢您的帮助。 问候。
答案 0 :(得分:0)
因此,您尝试根据存储文章的表更新所有文章列表系列。试试这个问题:
UPDATE list-articles A
INNER JOIN cmd-moy-j B ON A.`Code Article`=B.`Code Article`
SET A.Famille=(
CASE WHEN EXISTS (SELECT 1 FROM cmd-medicaments C
WHERE B.`Code Article`=C.`Code Article` LIMIT 1)
THEN 'MEDICAMENT'
WHEN EXISTS (SELECT 1 FROM cmd-alimentation D
WHERE B.`Code Article`=D.`Code Article` LIMIT 1)
THEN 'ALIMENTATION'
ELSE 'NULLL'
END
)
WHERE A.Famille IS NULL OR A.Famille='NULLL' OR A.Famille='';
请参阅以下链接以获取见解:
MySQL CASE Expression
MySQL Join Made Easy
MySQL UPDATE JOIN