Если в одном операторе SQL это кажется беспорядком, я разбиваю его и использую больше ресурсов.Для больших сетевых приложений, которым нужно сжимать каждую каплю производительности - это плохое решение.
Однако большую часть времени для менее требовательных обстоятельств хороший визуально-логический процесс вполне подходит.
Я бы выбрал свою информацию и использовал внутренний цикл языка более высокого уровня, чтобы поместить результаты в оператор вставки.Я недостаточно оштрафован за то, что сделал больше вкладышей.На многих совместно используемых хостах существует ограничение на количество запросов, которые вы можете сделать за период времени, поэтому, возможно, вам нужно построить меньше, но больше операторов вставки.
Для этого я бы, вероятно, использовал PHP для обработки своих данных.и SQL, я уверен, что следующее может быть адаптировано для любого языка, который вы хотели бы использовать.
<!php
$placeid=001
$sql1="SELECT column,othercolumn,maybeasterisk FROM table1 WHERE PlaceID=$placeid";
$sql2="INSERT into table2 (column,othercolumn,thirdcolumn,whymore,so-on) VALUES ('$data1a','$data1b','$data1c','$data1d','$data1e')";
$sql3="INSERT into table2 (column,othercolumn,thirdcolumn,whymore,so-on) VALUES $bigstring";
$counter=0;
$result1=mysql_query($sql1);
while ($resultrow1=mysql_fetch_array($result1)) {
$data1a=$resultrow1['1'];
$data1b=$resultrow1['2'];
$data1c=$resultrow1['3'];
$data1d=$resultrow1['whymore'];
$data1e=$resultrow1['so-on'];
if ($abillioninsertsareokay='true') {
mysql_query($sql2);
}
else {
//a billion inserts isn't okay
//build an array that we can use in a separate loop
for ($i=0, $i<=5, $i++) {
$sql3arraydata['$counter']['$i']
$counter++
}
}
$counter=0;
if ($abillioninsertsareokay!='true') {
foreach $sql3arraydata['$counter'] {
if ($counter>0) {
$bigstring.=', ';
}
$bigstring.="('$sql3arraydata['$counter'][1]','$sql3arraydata['$counter'][2]','$sql3arraydata['$counter'][3]','$sql3arraydata['$counter'][4]','$sql3arraydata['$counter'][5]')";
}
mysql_query($sql3); //one huge insert statement
}
?>
It may be the wrong way to look at things, but sometimes you just have to crank out mediocre code that works to get the job done. Yes, that would be great if you had all the time in the world to make it super awesome, but if this is the kind of question you are asking-- probably not a mission critical system for a mass amount of people.