我有一个查询
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次更新和一次插入而不是三个插入。