当我尝试将不同的值插入表中时,为什么需要进行另一次选择?另外:有没有更好的方法来做到这一点?
作品:
INSERT INTO phppos_categories (name)
SELECT category FROM
(SELECT DISTINCT category FROM phppos_items as items
UNION
SELECT DISTINCT category FROM phppos_item_kits as item_kits)
as category_result;
不起作用:
INSERT INTO phppos_categories (name)
(SELECT DISTINCT category FROM phppos_items as items
UNION
SELECT DISTINCT category FROM phppos_item_kits as item_kits)
试试这个它会工作
它不起作用,因为语法被定义为即在整个语句中
INSERT .. SELECT
必须有一个有效的。SELECT
对于您的“DOESN'T WORK”示例,如果您注释掉INSERT
您留下的是无效陈述。这不会运行:对功能语句做同样的事情,它仍然会执行。
有没有更好的办法?如果两个表的值不重叠
UNION ALL
,将节省一些处理。根据您的行数和倾斜度,两个单独的语句可能会获得更好的整体性能。您必须进行测试才能找到答案。