Кажется, мне трудно, поэтому мне нужна ваша помощь. В общем, я получил две таблицы с именами xp_pn_resale
и xp_guru_properties
. Что мне нужно сделать, это обновить или установить столбец postal_code
из таблицы xp_pn_resale
на основе данных из другой таблицы. Итак, вот мои таблицы
Моя таблица xp_pn_resale. Я написал запрос таким образом, чтобы показать вам
SELECT postal_code,
block,
concat(block,' ', street_name) as address
FROM xp_pn_resale
where street_name like '%ANG MO KIO%';
И я получил такой результат
![enter image description here](https://i.stack.imgur.com/SLgly.png)
Как вы можете видеть, там есть значения null
, и есть некоторые postal_code
, которые имеют значения, потому что я вручную обновляю их на основе того, что я искал. Я просто хочу автоматически заполнить postal_code
из запроса, полученного из другой таблицы.
Вот моя таблица xp_guru_properties, и я написал такой запрос, чтобы показать вам
SELECT property_name as GURU_PROEPRTY_NAME,
property_type as GURU_PROPERTY_TYPE ,
JSON_UNQUOTE(JSON_EXTRACT(xp_guru_properties.json, '$.postcode') )as GURU_POSTCODE
FROM xp_guru_properties
where property_type like '%HDB%' AND property_name like '%ang mo kio%';
И результат такой:
![enter image description here](https://i.stack.imgur.com/gLFhz.png)
xp_guru_properties
получил столбец property_type
, который немного похож на конкатенированные столбцы block
и street_name
из другой таблицы, которую я назвал GURU_PROPERTY_NAME
.
Как видите, существует виртуальный столбец с именем GURU_POSCODE
. Значения этого столбца - это то, что я хочу заполнить в столбце postal_code
из таблицы xp_pn_resale
. Я делал это вручную, чтобы обновить postal_code
, выполнив
UPDATE xp_pn_resale
SET postal_code = 560110
WHERE street_name LIKE '%ANG MO KIO%'
AND block = 110
, что очень утомительно для меня. Кто-нибудь знает, как я могу автоматически обновить его на основе запросов, которые я показал? Помощь будет оценена.
РЕДАКТИРОВАТЬ: я написал JOIN
запрос, как это, но это для записи Lingkong Tiga
, которую я вручную заполнил все postal_code
select distinct
JSON_UNQUOTE(json_extract(g.json, '$.postcode')) postcode,
JSON_UNQUOTE(json_extract(g.json, '$.name')) name,
JSON_UNQUOTE(json_extract(g.json, '$.streetnumber') )streetnumber,
p.block, p.street_name, p.postal_code
from xp_pn_resale p
inner join xp_guru_properties g
on g.property_name = concat(p.block, ' ', p.street_name)
where g.property_type like '%HDB%' AND g.property_name like '%Lengkong Tiga%'
I получил такой результат ![enter image description here](https://i.stack.imgur.com/tGXIc.png)