我有两张桌子A和
update A set (*) = (select * from B where id = 1) where session_id ='123';
两个表都为表A上的session_id保存了列EXCEPT。有关如何在不声明所有列的情况下更新记录的任何想法吗?
输出应该是以下查询的结果,但我应该使用它:
insert into A select * from B;
update A set session_id ='a';
我想知道如何将session_id首先插入所有记录。
答案 0 :(得分:1)
我不熟悉codeigniter细节,但是如果表B中的所有列都在表A中以相同的顺序声明,然后是session_id
,那么你可以这样做:
INSERT INTO "A"
SELECT *, '123'
FROM "B"
WHERE id = 1;
如果{A}在表A中排在第一位,后面是声明顺序的表B的所有列,那么您可以在session_id
语句中简单地交换列顺序。如果订单不相同(除了SELECT
),那你就不走运了。