Как обновить столбец на основе совпадающих идентификаторов - PullRequest
1 голос
/ 05 апреля 2019

Я создаю две таблицы housing_listing и покупателя. Как обновить значение продано в таблице housing_listing до TRUE, если id (transaction_id) of housing_listing соответствует id (transaction_id) покупателя?

Создание таблиц:


CREATE TABLE housing_listing (
    transaction_id INT PRIMARY KEY,
    number_of_bedrooms INT,
    number_of_bathrooms INT,
    listing_price INT,
    listing_agent TEXT,
    agent_email TEXT,
    listing_office TEXT,
    date_of_listing DATETIME,
    zip_code INT,
    sold BOOL,
    Commission INT
);



CREATE TABLE buyer (
    transaction_id INT PRIMARY KEY,
    buyer_name TEXT,
    buyer_id INT,
    sale_price INT,
    date_of_sale DATETIME,
    selling_agent TEXT
)

Вставка данных в таблицу покупателя:

INSERT INTO buyer VALUES (1, "Ania Kraszka", 1, 2000000,'2020/02/27','FADU');
INSERT INTO buyer VALUES (2, "Ania Kraszka", 2, 2000000,'2011/02/27','FADU');

Вставка данных в таблицу housing_listing:

INSERT INTO housing_listing VALUES (1, 3, 2, 2000000, 'Liza','liza@uba.ar', 'UBA','2018/02/27',45049, 'FALSE',0);
INSERT INTO housing_listing VALUES (2, 2, 1, 3000, 'Tom','tom@utn.ar', 'UTN','2011/02/27',45049,'FALSE',0);
INSERT INTO housing_listing VALUES (9, 1, 1, 40000, 'Tom','tom@fadu.ar', 'FADU','2011/02/27',45049, 'FALSE',0);

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Вы можете использовать коррелированный подзапрос:

update housing_listing
    set sold = true
    where exists (select 1
                  from buyer b
                  where b.transaction_id = housing_listing.transaction_id
                 );

Я предполагаю, что вы имеете в виду, что идентификаторы транзакций совпадают.

0 голосов
/ 05 апреля 2019

Вы можете сделать что-то вроде этого -

UPDATE housing_listing
  SET sold = 'TRUE'
 WHERE transaction_id IN (SELECT transaction_id FROM buyer);


SELECT * FROM housing_listing;

1|3|2|2000000|Liza|liza@uba.ar|UBA|2018/02/27|45049|TRUE|0
2|2|1|3000|Tom|tom@utn.ar|UTN|2011/02/27|45049|TRUE|0
9|1|1|40000|Tom|tom@fadu.ar|FADU|2011/02/27|45049|FALSE|0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...