我的问题是如何循环通过一个表,并从另一个表提取信息。
我有一个表- X有470条记录:
A B C
111 12 18
121 21 29
127 37 101
我想写下面的查询:
create or replace view NEW as
For j = 1-3
Select * from Y
where imei = X.A(j) and id > X.B(j) and id < X.C(j)
抱歉,我是一个matlab程序员,所以我用上面的语法来解释我想要什么。我如何在MySql中做到这一点?我已经查找了For循环,但大多数情况下,它在同一个表内循环。我需要循环遍历另一个表,并在另一个表的where语句中使用这些条件。
要从表中获得3行,在子查询中使用LIMIT 3
。要获取另一个表中的相关行,请使用JOIN
。
CREATE OR REPLACE VIEW new AS
SELECT Y.*
FROM Y
JOIN (SELECT *
FROM X
LIMIT 3) AS X ON Y.ime1 = X.a AND Y.id > X.b AND Y.id < X.c
为了使LIMIT 3
产生可预测的结果,您应该在子查询中使用ORDER BY
子句。否则,它将从X
中选择任意3行。