Mysql 仅从和订单中选择前两项
我需要你帮忙,我有3张表,订单,订单行Mysql 仅从和订单中选择前两项,mysql,Mysql,我需要你帮忙,我有3张表,订单,订单行 CREATE TABLE orders (`id` int, `date` datetime) ; INSERT INTO orders (`id`, `date`) VALUES (78, '2017-01-03 00:00:00'), (79, '2017-02-03 00:00:00'), (80, '2017-03-03 00:00:00'), (81, '2017-04-03 00:00:00'), (82, '2017-05-03 00:00
CREATE TABLE orders
(`id` int, `date` datetime)
;
INSERT INTO orders
(`id`, `date`)
VALUES
(78, '2017-01-03 00:00:00'),
(79, '2017-02-03 00:00:00'),
(80, '2017-03-03 00:00:00'),
(81, '2017-04-03 00:00:00'),
(82, '2017-05-03 00:00:00'),
(83, '2017-06-03 00:00:00'),
(84, '2017-07-03 00:00:00')
)
)
我想显示包含2个或2个以上项目的所有订单,但仅显示前两个项目,因此它将是第1行和第2行
结果应该是:
如果您有任何想法,请提前感谢。要获得所需的结果,您需要创建另一个表。在本例中,我创建了一个名为TESTQUERY的表,并插入了数据来计算订单id出现的次数 表创建
CREATE TABLE TESTQUERY
(`id` int, `count` int)
将数据输入测试表
INSERT INTO TESTQUERY
(
SELECT o.id, COUNT(o.id) as count FROM orders o
JOIN order_item oi ON oi.fk_o_id = o.id
JOIN order_item_line oil ON oil.fk_oi_id = oi.id
GROUP BY o.id
)
然后,我使用下面的查询对所有数据库进行查询,它返回了您想要的结果
SELECT o.id, oi.sku, oil.line_id FROM orders o
JOIN order_item oi ON oi.fk_o_id = o.id
JOIN order_item_line oil ON oil.fk_oi_id = oi.id
JOIN TESTQUERY t ON t.id = o.id
WHERE t.count > 1 AND oil.line_id < 3
从订单o中选择o.id、oi.sku、oil.line\u id
在oi.fk\u o\u id=o.id上加入订单\项目oi
加入订单\项目\行油中的油。fk\油中的油=油中的油
在t.id=o.id上连接TESTQUERY t
其中t.count>1,而oil.line_id<3
我希望这有助于以文本格式显示表格结构请稍等,我知道,但请提供一些表格的文本格式,而不是图像格式。我很容易为您这样做,我不知道如何在注释中设置表格格式,而且真的很混乱…不在注释中。编辑问题。在这里您可以轻松创建表格
SELECT o.id, oi.sku, oil.line_id FROM orders o
JOIN order_item oi ON oi.fk_o_id = o.id
JOIN order_item_line oil ON oil.fk_oi_id = oi.id
JOIN TESTQUERY t ON t.id = o.id
WHERE t.count > 1 AND oil.line_id < 3