你能帮我设计一个MySQL查询来创建一个包含来自其他3个表的数据的表吗?
数据库设计:
我试过的是:
INSERT INTO SklepZaloha (TIME)
SELECT TIME FROM Item1;
INSERT INTO SklepZaloha (Boiler)
SELECT Value FROM Item1;
INSERT INTO SklepZaloha (Zpatecka)
SELECT Value FROM Item2;
INSERT INTO SklepZaloha (Vymnenik)
SELECT Value FROM Item3;
但结果是:a a b b b c c c而不是:a b c a b c a b c
答案 0 :(得分:0)
您的public static String toFraction(double d, double err) {
String s = Long.toString((long) d);
d -= (long) d;
if (d > err) {
for (int den = 2, max = (int) (1 / err); den < max; den++) {
long num = Math.round(d * den);
double d2 = (double) num / den;
if (Math.abs(d - d2) <= err)
return (s.equals("0") ? "" : s + " ") + num +"/"+den;
}
}
return s;
}
public static void main(String... args) {
System.out.println(toFraction(1.0/3, 1e-6));
System.out.println(toFraction(1.23456789, 1e-6));
System.out.println(toFraction(Math.E, 1e-6));
System.out.println(toFraction(Math.PI, 1e-6));
for (double d = 10; d < 1e15; d *= 10)
System.out.println(toFraction(Math.PI, 1.0 / d));
}
需要一次插入整行,而不是一次只丢掉一个值。为此,您需要使用1/3
1 19/81
2 719/1001
3 16/113
3 1/5
3 1/7
3 9/64
3 15/106
3 16/113
3 16/113
3 3423/24175
3 4543/32085
3 4687/33102
3 14093/99532
3 37576/265381
3 192583/1360120
3 244252/1725033
3 2635103/18610450
。
INSERT ... SELECT
JOIN
部分也是 INSERT INTO SklepZaloha
(`Time`, Boiler, Zpatecka, Vymnenik)
SELECT i1.`Time`, i1.Value, i2.Value, i3.Value
FROM Item1 i1
INNER JOIN Item2 i2
ON i1.`Time` = i2.`Time`
INNER JOIN Item3 i3
ON i1.`Time` = i3.`Time`;
查询的正确语法。
答案 1 :(得分:-1)
我可以告诉你一件事,你很可能必须在存储过程中使用预备语句。我已经有一段时间了,但是在存储过程中你可以使用数据访问表,然后构建一个准备好的语句然后执行。
关于存储过程和预准备语句的MySQL文档非常好。
我隐约记得,但是,在存储过程中执行此类语句时会出现问题。
抱歉,我可以提供更多帮助。
迈克尔