-2
INSERT INTO order_time( link, time )
SELECT link, CAST
(
( 
(
   SELECT FIRST (t.time AS dtime)
   FROM delivery_time t, quantity q
   WHERE t.link = q.link
) - 
(
    SELECT FIRST (orderTime)
    FROM delivery_time t, menu m, quantity q
    WHERE t.link = q.link
    AND t.menuId = m.menuId
)
) AS time( 0 )
)
FROM quantity where 1

我收到错误消息。

数量包括(链接,数量);链接是唯一的和 int

order_time:(链接,时间);链接是唯一的和 int,时间是数据类型时间

交付时间:(链接,菜单ID,时间);对于 menuId(int),有不同的时间(数据类型时间),对于 menuId 的一组不同的时间,有链接;所以 menuId 和时间组合是独一无二的:

menuId    time    link
1       12:00:00   1
1       12:10:00   1
1       14:00:00   2
1       14:10:00   2
1       14:20:00   2
2       12:00:00   3
2       12:10:00   3
2       12:20:00   3
2       14:00:00   4
2       14:10:00   4
2       15:00:00   5

& menu: (menuId, orderTime); menuId 是唯一的,orderTime 是数据类型时间。

我的需要是:创建一个表 order_time (link,time) ,其中链接是唯一的并且取自数量。这里的时间是对应于delivery_time和orderTime中该链接的第一个时间实例与菜单表的时间差,该菜单表对应于delivery_time表中的menuId。

ERROR:MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(t.time AS dtime)
   FROM delivery_time t, quantity q
   WHERE t.link = q.link' at line 6 
4

1 回答 1

1

尝试这个:

INSERT INTO order_time( link, time )
SELECT link, CAST
    (
        ( 
            (
            SELECT MIN(t.time)
            FROM delivery_time t
                INNER JOIN quantity q ON
                    t.link = q.link
            ) - 
            (
            SELECT MIN(orderTime)
            FROM delivery_time t
                INNER JOIN menu m ON
                    t.menuId = m.menuId
                INNER JOIN quantity q ON
                    t.link = q.link
            )
        ) AS time(0)
    )
FROM quantity
where 1 = 1
于 2012-04-16T11:10:25.397 回答