【发布时间】:2017-04-19 11:19:24
【问题描述】:
我希望填充 'ShippingOrder' with 'Contains.ISBN', 'Contains.number', 'Stocks.warehouseCode' 并且对于用户名,我从 'Contains.basketID' = 'ShoppingBasket.basketID' 之间的连接中获取它
我有这个在 mysql 中为我工作-
INSERT INTO ShippingOrder (SELECT DISTINCT co.ISBN, s.warehouseCode, sb.username, co.number FROM Contains co INNER JOIN Stocks s INNER JOIN ShoppingBasket sb ON co.ISBN = s.ISBN AND sb.basketID=co.basketID AND co.basketID='".$basketID."' GROUP BY co.ISBN)
TABLE `ShippingOrder` (
`ISBN` int(11) NOT NULL,
`warehouseCode` int(11) NOT NULL,
`username` varchar(50) NOT NULL,
`number` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
TABLE `Contains` (
`ISBN` int(11) NOT NULL,
`basketID` varchar(50) NOT NULL,
`number` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
TABLE `Stocks` (
`ISBN` int(11) NOT NULL,
`warehouseCode` int(11) NOT NULL,
`number` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
TABLE `ShoppingBasket` (
`basketID` varchar(50) NOT NULL,
`username` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我不明白如何在 Laravel 5+ 中执行此操作。 我可以运行简单的查询,但我不知道如何运行上面提到的查询。 谢谢Check this image
【问题讨论】:
-
上面也是一个简单的查询。如果问题是如何用 laravel 对象表达上述查询,那么我的答案是:不要浪费时间在上面,直接运行原始查询即可。
-
查询在 CodeIgniter 或 PhpMyAdmin 中运行良好。但是,它不是从 Laravel 内部插入的。它是否正确? $result = DB::raw("INSERT INTO shippingorder (SELECT DISTINCT co.ISBN, s.warehouseCode, sb.username, co.number FROM 包含 co INNER JOIN Stocks s INNER JOIN ShoppingBasket sb ON co.ISBN = s.ISBN AND sb.basketID=co.basketID AND co.basketID='1' GROUP BY co.ISBN)");
标签: php mysql database join laravel-5