Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 仅从和订单中选择前两项_Mysql - Fatal编程技术网

Mysql 仅从和订单中选择前两项

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

我需要你帮忙,我有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: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