我需要从两个单独的表中插入两个值,并使用WHERE子句过滤其中一个值。 目前我正在使用:
INSERT INTO Combined_List (Email, Product)
SELECT meta_value, item_name FROM user_list, order_items
WHERE meta_key LIKE '%user_email%'
meta_value
包含各种信息,因此我尝试仅将user_email
之类的条目过滤为meta_key
。
问题是,当我运行此条目时,条目会重复数百次
我使用正确的语法仅过滤meta-key
而非item_name
吗?
答案 0 :(得分:1)
您需要在其公共字段中加入user_list和order_items! 现在,您将user_list中的每个条目与order_items中的每个条目组合在一起。
答案 1 :(得分:0)
试试这个:
INSERT INTO Combined_List (Email, Product)
SELECT DISTINCT meta_value, item_name FROM user_list, order_items
WHERE meta_key LIKE '%user_email%'
或者:
INSERT INTO Combined_List (Email, Product)
SELECT DISTINCT meta_value, item_name FROM user_list
WHERE meta_key LIKE '%user_email%'
UNION
SELECT DISTINCT meta_value, item_name FROM order_items
WHERE meta_key LIKE '%user_email%'
编辑:
不知道你的结构,这是我能做的最好的
INSERT INTO Combined_List (Email, Product)
SELECT a.meta_value, b.item_name
FROM user_list a
JOIN order_items b ON a.meta_key = b.meta_key
where a.meta_key LIKE '%user_email%'
使用PK-FK关系代替a.meta_key = b.meta_key