需將 table_b 的 id 複製到 table_a,並同時寫入固定字串 'name' 作為 name 欄位值,但 'name' 不存在於 table_b 中。
mysql> SELECT 'name', id FROM table_b;
+------+-----------+
| name | id |
+------+-----------+
| name | 123456 |
| name | 1234567 |
| name | 12345678 |
| name | 123456789 |
+------+-----------+
4 rows in set (0.00 sec)
mysql> INSERT INTO table_a(name, b_refer) SELECT 'name', id FROM table_b;
Query OK, 4 rows affected (0.03 sec)
SELECT 列表中可混合「欄位」與「常數運算式」。CROSS JOIN 一個單行單列的虛擬表。-- 多個常數
INSERT INTO log (level, msg, src_ip, created_at)
SELECT 'ERROR', 'timeout', '10.0.0.1', NOW() FROM dual;
-- 運算式
INSERT INTO sales_summary (dt, total_amt)
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY), SUM(amt) FROM orders;
dual 是 MySQL 虛擬單行表,僅用於不需從實體表取資料時。