我想將表從一個數據庫移動到另一個。我正在過程中過濾數據。例如:MYSQL將表移動到第二個數據庫和篩選器
DROP TABLE IF EXISTS target_db.products;
CREATE TABLE target_db.products LIKE original_db.products;
INSERT INTO target_db.products
SELECT * FROM original_db.products
WHERE products_status = 1
AND products_date_added > (SELECT DATE_SUB(now(), INTERVAL 18 MONTH));
這工作正常,我得到我期望的記錄。但是,當WHERE語句包含另一個表失敗(因爲該列列表不匹配。)例如:
# export products
DROP TABLE IF EXISTS target_db.products_description;
CREATE TABLE target_db.products_description LIKE original_db.products_description;
INSERT INTO target_db.products_description
SELECT * FROM original_db.products_description pd, original_db.products p
WHERE p.products_status = 1
AND p.products_date_added > (SELECT DATE_SUB(now(), INTERVAL 18 MONTH))
AND pd.products_id = p.products_id;
有沒有解決這個另一種方式比過分指定列?
我會指定無論列。否則,MySQL可能會錯誤地匹配它們。大混亂。 – ethrbunny