gpt4 book ai didi

mysql - 查询数据库 MySQL

转载 作者:可可西里 更新时间:2023-11-01 08:56:50 25 4
gpt4 key购买 nike

我需要你的帮助:我想从表中搜索本周有多少用户 (id_uzy) 在示例中进行了预订,接下来他们预订了哪些时间 (godzina[pl] -> hour[en]) 并在这个时间找到所有 id_urz。

例子:

  1. id_uzy->1->hour(9-10)-->id_urz(2,3,4)
  2. id_uzy->1->hour(10-11)-->id_urz(2,3,4)
  3. id_uzy->2->小时(10-11)-->id_urz(4,5)
  4. id_uzy->1->小时(12-13)-->id_urz(4,5)

这是我的表结构:

id_rez  id_urz  id_uzy  data        godzina  kiedy_rezerwowano
297 4 2 2010-08-23 14-15 2010-08-20 19:07:27
296 4 2 2010-08-23 13-14 2010-08-20 19:07:27
295 4 2 2010-08-23 12-13 2010-08-20 19:07:27
294 4 2 2010-08-23 11-12 2010-08-20 19:07:27
293 26 2 2010-08-23 14-15 2010-08-20 19:07:27
292 26 2 2010-08-23 13-14 2010-08-20 19:07:27
291 26 2 2010-08-23 12-13 2010-08-20 19:07:27
290 26 2 2010-08-23 11-12 2010-08-20 19:07:27
289 4 3 2010-08-30 14-15 2010-08-20 19:07:02
288 4 3 2010-08-30 13-14 2010-08-20 19:07:02
287 8 3 2010-08-30 14-15 2010-08-20 19:07:02
286 8 3 2010-08-30 13-14 2010-08-20 19:07:02
285 1 3 2010-08-23 14-15 2010-08-20 19:06:43
284 1 3 2010-08-23 13-14 2010-08-20 19:06:43
283 1 3 2010-08-23 09-10 2010-08-20 19:06:43
282 1 3 2010-08-23 08-09 2010-08-20 19:06:43
281 6 3 2010-08-23 14-15 2010-08-20 19:06:43
280 6 3 2010-08-23 13-14 2010-08-20 19:06:43
279 6 3 2010-08-23 09-10 2010-08-20 19:06:43
278 6 3 2010-08-23 08-09 2010-08-20 19:06:43

对于这张表,请帮我找到解决方案。

编辑这里还有 Sql 将其添加到您的数据库中:

CREATE TABLE IF NOT EXISTS `prz_rezerwacje` (
`id_rez` int(5) NOT NULL AUTO_INCREMENT,
`id_urz` int(6) NOT NULL,
`id_uzy` int(3) NOT NULL,
`data` date NOT NULL,
`godzina` varchar(5) NOT NULL,
`kiedy_rezerwowano` datetime NOT NULL,
PRIMARY KEY (`id_rez`),
KEY `id_uzytkownika_fk` (`id_uzy`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Rezerwacje sprzętu.' AUTO_INCREMENT=298 ;

--
-- Zrzut danych tabeli `prz_rezerwacje`
--

INSERT INTO `prz_rezerwacje` (`id_rez`, `id_urz`, `id_uzy`, `data`, `godzina`, `kiedy_rezerwowano`) VALUES
(297, 4, 2, '2010-08-23', '14-15', '2010-08-20 19:07:27'),
(296, 4, 2, '2010-08-23', '13-14', '2010-08-20 19:07:27'),
(295, 4, 2, '2010-08-23', '12-13', '2010-08-20 19:07:27'),
(294, 4, 2, '2010-08-23', '11-12', '2010-08-20 19:07:27'),
(293, 26, 2, '2010-08-23', '14-15', '2010-08-20 19:07:27'),
(292, 26, 2, '2010-08-23', '13-14', '2010-08-20 19:07:27'),
(291, 26, 2, '2010-08-23', '12-13', '2010-08-20 19:07:27'),
(290, 26, 2, '2010-08-23', '11-12', '2010-08-20 19:07:27'),
(289, 4, 3, '2010-08-30', '14-15', '2010-08-20 19:07:02'),
(288, 4, 3, '2010-08-30', '13-14', '2010-08-20 19:07:02'),
(287, 8, 3, '2010-08-30', '14-15', '2010-08-20 19:07:02'),
(286, 8, 3, '2010-08-30', '13-14', '2010-08-20 19:07:02'),
(285, 1, 3, '2010-08-23', '14-15', '2010-08-20 19:06:43'),
(284, 1, 3, '2010-08-23', '13-14', '2010-08-20 19:06:43'),
(283, 1, 3, '2010-08-23', '09-10', '2010-08-20 19:06:43'),
(282, 1, 3, '2010-08-23', '08-09', '2010-08-20 19:06:43'),
(281, 6, 3, '2010-08-23', '14-15', '2010-08-20 19:06:43'),
(280, 6, 3, '2010-08-23', '13-14', '2010-08-20 19:06:43'),
(279, 6, 3, '2010-08-23', '09-10', '2010-08-20 19:06:43'),
(278, 6, 3, '2010-08-23', '08-09', '2010-08-20 19:06:43');

最佳答案

沿着这条线的东西应该工作:

SELECT pr.id_uzy, pr.godzina, (SELECT pr2.id_urz
FROM prz_rezerwacje pr2
WHERE pr2.id_uzy = pr.id_uzy
AND pr2.godzina = pr.godzina) as id_urz_group
FROM prz_rezerwacje pr;

然后您可以构建一个 where 语句以根据需要进行过滤。例如,如果您希望查询动态运行一周(即运行它以生成报告),您可以使用:

WHERE kiedy_rezerwowano BETWEEN DATE_SUB(NOW(), INTERVAL x DAY) AND NOW();

关于mysql - 查询数据库 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3533082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com