我有一个查询

     SELECT ultrait_wpl_properties.id, location1_name, location3_name, location4_name,
     field_312, field_42, post_code, lot_area, price, bedrooms, bathrooms, field_308,
     googlemap_lt, googlemap_ln, street, street_no, ultrait_wpl_property_types.name,
     ultrait_wpl_items.item_name
     FROM ultrait_wpl_properties
     JOIN ultrait_wpl_property_types
     ON ultrait_wpl_properties.property_type = ultrait_wpl_property_types.id
     JOIN ultrait_wpl_items ON ultrait_wpl_properties.id = ultrait_wpl_items.id
     ORDER BY ultrait_wpl_properties.id


如您所见,我正在使用JOINS。当涉及到插入一条新记录时,是否有一种方法可以创建一个包含这些记录的INSERT语句?

我的意思是,如果我拥有上面查询中指定的所有字段的数据,我是否可以编写将数据插入正确表的INSERT?我目前也在研究此问题,但是如果有人可以提供任何见解,我们将不胜感激。

最佳答案

没有。

或稍长一点的答案:不,SQL标准不提供此选项。

有一种解决方法:您可以创建一个STORED PROCEDURE来接受来自查询的输入并将其拆分为多个INSERT语句。但是:此解决方案不具备标准SQL语句的任何灵活性。

同样,如果您通过键将三个表连接在一起,这也不是一件容易的事,那么您可能还要进行2次更新和一次插入而不是三个插入。

10-04 23:35
查看更多