これが私のテーブルの関連する列です
bia_panels
(id, sign_id, value, project_id
)bia_clients
(id, name
)bia_projects
(id, name, client_id, city_id
)bia_cities
(id, name
)
とと の値が空白ではないところに を更新しようとしてbia_panels.project_id
います もちろん、そこに到達するには複数の結合を使用する必要がありますbia_projects.id
bia_panels.value = bia_clients.name
panels.project_id =000
-- UPDATE
SELECT * FROM
`bia_panels` AS t1
JOIN bia_clients AS t2
ON t1.value = t2.name
JOIN bia_projects AS t3
ON t2.id = t3.client_id
-- SET t1.project_id = t3.id
-- WHERE t1.value<>'' AND t1.project_id = '000'
WHERE t1.value <>''
問題は、これが正しい結果を与えていないことです (プロジェクト ID が結合のどこかで正しくないため、複数の結果が返されるため、それらは壊れます
選択部分を正しく取得できたら、更新を使用できることを知っています
たとえば、value=client.name
すべてが同じプロジェクト ID ではない複数のパネルが存在する場合があります。