我有一个问题,如何下订单的产品,然后将订单插入到连接的5个表中:一对多,这些表如此连接以至于当客户进入房间,为例如产品订购产品咖啡或水,它必须显示在下订单的订单页面中,客户坐在哪个房间,然后服务员从订单状态获取订单是产品是否付款。 表是:从html表格中插入数据到5个表中
CREATE TABLE IF NOT EXISTS `user` (
`user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`type_id` int(10) unsigned NOT NULL,
`username` varchar(50) DEFAULT NULL,
`password` varchar(32) DEFAULT NULL,
`first_name` varchar(100) DEFAULT NULL,
`last_name` varchar(100) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`picture` varchar(200) DEFAULT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_index1780` (`username`),
KEY `user_FKIndex1` (`type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=71 ;
CREATE TABLE IF NOT EXISTS `order` (
`order_id` int(11) NOT NULL AUTO_INCREMENT,
`time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`status` int(11) DEFAULT NULL,
`room_id` int(11) NOT NULL,
`user_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`order_id`),
KEY `fk_order_room1` (`room_id`),
KEY `fk_order_user2` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
CREATE TABLE IF NOT EXISTS `product` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`price` float DEFAULT NULL,
`picture` varchar(500) DEFAULT NULL,
PRIMARY KEY (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
CREATE TABLE IF NOT EXISTS `room` (
`room_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`picture` varchar(450) DEFAULT NULL,
`description` text,
`user_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`room_id`),
KEY `fk_room_user1` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
CREATE TABLE IF NOT EXISTS `item_orders` (
`order_id` int(11) NOT NULL,
`product_id` int(11) NOT NULL,
`quantity` int(11) DEFAULT NULL,
PRIMARY KEY (`order_id`,`product_id`),
KEY `fk_order_has_product_product1` (`product_id`),
KEY `fk_order_has_product_order1` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `type_user` (
`type_id` int(10) unsigned NOT NULL,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
现在在我内加入到其中来下订单的产品没有发生的事情。
查询是:
SELECT order.order_id,
user.first_name AS user,
product.name,
product.price,
item_orders.quantity,
product.price * item_orders.quantity AS sum,
room.name,
order.time,
order.status
FROM user, product, room, `order`, item_orders
WHERE user.user_id = room.user_id
AND order.room_id = room.room_id
AND order.order_id = item_orders.order_id
AND product.product_id = item_orders.product_id
此连接就好了它只是进入一个新加入的order_id =“$ ORDER_ID”,就是这样。
2013-08-07
cappie
+0
嗨!感谢您的问题,欢迎来到Stack Overflow!很好,你为你的表格发布了DDL,但是也请显示你的查询。 –
+0
好吧我发布了查询 –
+0
您发布的每个SQL查询一次只使用一个表。 –