gpt4 book ai didi

mysql - 查询 : Count how many times a parameter in one table does not exist in another

转载 作者:行者123 更新时间:2023-11-29 16:33:34 25 4
gpt4 key购买 nike

作为标题,我有两个表,其中一个是具有相对 ID 的产品,另一个是注册后通过内部联接看到涉及不同产品 ID 的各种事件的事件。在事件中我可以参与更多产品。

产品表名为:store_locator

事件表被称为:campagne_cliente

CREATE TABLE `campagne_cliente` (
`id_campagna_cliente` int(11) NOT NULL,
`cliente_id_campagna` int(11) NOT NULL,
`impianto_id_campagna` int(11) NOT NULL,
`nome_campagna_cliente` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

其中 impianto_id_campagna 是 store_locator 表(产品)的 ID

这就是我的目标。注册事件时,用户将选择更多产品的客户。

一旦完成这个过程,我当然会在事件表中

the id of the event
the customer's id
the product id
name of the event: optional
(see Table: campagne_cliente)

实际案例:

  `id_campagna_cliente` = 12
`cliente_id_campagna` = 34
`impianto_id_campagna` = 6
`nome_campagna_cliente` = optional name

显然campagne_cliente表中包含的id号6,指的是store_locator表的id号6

这是我的问题:如果用户不小心从 store_locator 表中删除了数字 6,显然当我去查看该事件的信息页面时,我将看不到产品详细信息数字 6

如何从表campagne_cliente中统计有多少次产品ID在store_locator表中不存在

我的尝试:

SELECT COUNT(*)
FROM campagne_cliente
RIGHT OUTER JOIN store_locator
ON campagne_cliente.impianto_id_campagna = store_locator.id
WHERE store_locator.id = 0

但是不好。

@Alexey

在我的项目中除了这两个表之外还应该涉及另一个表,我正在谈论的表称为:campagne

CREATE TABLE `campagne` (
`id_campagna` int(11) NOT NULL,
`data_inizio` date NOT NULL,
`data_fine` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

该表有一个名为:id_campagna 的参数因为此表存在:因为它允许通过设置开始和结束日期来注册事件(事件),然后在用户将所有产品与客户关联的下一步中,这些数据最终会出现在表中:campagne_cliente

我还将store_locator表的结构放入其中

CREATE TABLE `store_locator` (
`id` bigint(20) NOT NULL,
`user_id` bigint(20) DEFAULT NULL,
`post_id` bigint(20) DEFAULT NULL,
`category_id` varchar(11) DEFAULT NULL,
`name` varchar(160) DEFAULT NULL,
`logo` varchar(255) DEFAULT NULL,
`address` varchar(160) DEFAULT NULL,
`lat` varchar(20) DEFAULT NULL,
`lng` varchar(20) DEFAULT NULL,
`url` varchar(160) DEFAULT NULL,
`description` text,
`tel` varchar(30) DEFAULT NULL,
`email` varchar(60) DEFAULT NULL,
`city` varchar(60) DEFAULT NULL,
`cap` varchar(255) NOT NULL,
`country` varchar(60) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`concessionaria` varchar(255) NOT NULL,
`proprietaria` varchar(255) NOT NULL,
`cimasa` varchar(255) NOT NULL,
`inpe` varchar(255) NOT NULL,
`tipo_impianto` varchar(255) NOT NULL,
`tipologia` varchar(255) NOT NULL,
`numero_facce` varchar(255) NOT NULL,
`quartiere` varchar(255) NOT NULL,
`comune` varchar(255) NOT NULL,
`ubicazione` varchar(255) NOT NULL,
`circuito` varchar(255) NOT NULL,
`costo_quattordici` varchar(255) NOT NULL,
`costo_mese` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

还有一个练习的例子,这是store_locator表中的值内容,可以看到,没有id 44:

INSERT INTO `store_locator` (`id`, `user_id`, `post_id`, `category_id`, `name`, `logo`, `address`, `lat`, `lng`, `url`, `description`, `tel`, `email`, `city`, `cap`, `country`, `created`, `concessionaria`, `proprietaria`, `cimasa`, `inpe`, `tipo_impianto`, `tipologia`, `numero_facce`, `quartiere`, `comune`, `ubicazione`, `circuito`, `costo_quattordici`, `costo_mese`) VALUES
(1, NULL, NULL, '3x2', NULL, NULL, 'Viale XVII Olimpiade', '41.932294', '12.472014', NULL, NULL, NULL, NULL, 'Roma', '00196', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'AZ830', 'Tradizionale', 'Tradizionale', 'Poster', 'bifacciale', '', 'Roma', '', '', ' € 10.000 ', ' € 20.000 '),
(2, NULL, NULL, '3x2', NULL, NULL, 'Via dei Campi Sportivi, 43', '41.937209', '12.491009', NULL, NULL, NULL, NULL, 'Roma', '00197', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'AZ834', 'Tradizionale', 'Tradizionale', 'Poster', 'monofacciale', 'Monte Antenne', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(3, NULL, NULL, '3x2', NULL, NULL, 'Viale Maresciallo Pilsudski', '41.927768', '12.475042', NULL, NULL, NULL, NULL, 'Roma', '00196', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'AZ837', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(7, NULL, NULL, '3x2', NULL, NULL, 'Viale XVII Olimpiade', '41.932294', '12.472014', NULL, NULL, NULL, NULL, 'Roma', '00196', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'AZ830', 'Tradizionale', 'Tradizionale', 'Poster', 'bifacciale', '', 'Roma', '', '', ' € 10.000 ', ' € 20.000 '),
(8, NULL, NULL, '3x2', NULL, NULL, 'Via dei Campi Sportivi, 43', '41.937209', '12.491009', NULL, NULL, NULL, NULL, 'Roma', '00197', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'AZ834', 'Tradizionale', 'Tradizionale', 'Poster', 'monofacciale', 'Monte Antenne', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(9, NULL, NULL, '3x2', NULL, NULL, 'Viale Maresciallo Pilsudski', '41.927768', '12.475042', NULL, NULL, NULL, NULL, 'Roma', '00196', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'AZ837', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(10, NULL, NULL, '3x2', NULL, NULL, 'Viale di Val Fiorita, 25', '41.839818', '12.464565', NULL, NULL, NULL, NULL, 'Roma', '00144', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB106', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(11, NULL, NULL, '3x2', NULL, NULL, 'Via Salaria, 1075', '41.977152', '12.505168', NULL, NULL, NULL, NULL, 'Roma', '00138', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB608', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(12, NULL, NULL, '3x2', NULL, NULL, 'Piazzale Aldo Moro', '41.902230', '12.511968', NULL, NULL, NULL, NULL, 'Roma', '00185', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB616', '', 'Tradizionale', 'Poster', 'bifacciale', '', 'Roma', '', '', ' € 10.000 ', ' € 20.000 '),
(13, NULL, NULL, '3x2', NULL, NULL, 'Via Nomentana, 696', '41.937860', '12.540871', NULL, NULL, NULL, NULL, 'Roma', '00141', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB660', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(14, NULL, NULL, '3x2', NULL, NULL, 'Via Nomentana, 771', '41.937887', '12.544061', NULL, NULL, NULL, NULL, 'Roma', '00137', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB676', '', 'Tradizionale', 'Poster', '', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(15, NULL, NULL, '3x2', NULL, NULL, 'Piazza Ottaviano Vimercati, 37', '41.958539', '12.524797', NULL, NULL, NULL, NULL, 'Roma', '0139', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB708', '', 'Tradizionale', 'Poster', 'bifacciale', '', 'Roma', '', '', ' € 10.000 ', ' € 20.000 '),
(16, NULL, NULL, '3x2', NULL, NULL, 'Via Cavriglia, 10', '41.947661', '12.516421', NULL, NULL, NULL, NULL, 'Roma', '00139', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB708', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(17, NULL, NULL, '3x2', NULL, NULL, 'Via Monte Rocchetta, 28', '41.947396', '12.531392', NULL, NULL, NULL, NULL, 'Roma', '00139', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB730', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(18, NULL, NULL, '3x2', NULL, NULL, 'Via Monte Cervialto, 233', '41.956934', '12.523327', NULL, NULL, NULL, NULL, 'Roma', '00139', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB739', '', 'Tradizionale', 'Poster', 'bifacciale', '', 'Roma', '', '', ' € 10.000 ', ' € 20.000 '),
(19, NULL, NULL, '3x2', NULL, NULL, 'Viale Jonio, 185', '41.944706', '12.534701', NULL, NULL, NULL, NULL, 'Roma', '00141', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB753', '', 'Tradizionale', 'Poster', 'bifacciale', '', '', '', '', ' € 10.000 ', ' € 20.000 '),
(20, NULL, NULL, '3x2', NULL, NULL, 'Viale Jonio, 44', '41.944461', '12.543305', NULL, NULL, NULL, NULL, 'Roma', '00141', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB757', '', 'Tradizionale', 'Poster', 'bifacciale', '', 'Roma', '', '', ' € 10.000 ', ' € 20.000 '),
(21, NULL, NULL, '3x2', NULL, NULL, 'Via dei Prati Fiscali, 213', '41.946345', '12.518534', NULL, NULL, NULL, NULL, 'Roma', '00139', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB763', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(22, NULL, NULL, '3x2', NULL, NULL, 'Via Prenestina, 1072', '41.893370', '12.611979', NULL, NULL, NULL, NULL, 'Roma', '00155', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB827', '', 'Tradizionale', 'Poster', 'monofacciale', '', '', '', '', ' € 5.000 ', ' € 10.000 '),
(23, NULL, NULL, '3x2', NULL, NULL, 'Via Prenestina, 601', '41.893968', '12.583088', NULL, NULL, NULL, NULL, 'Roma', '00155', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB829', '', 'Tradizionale', 'Poster', 'opaco', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(24, NULL, NULL, '3x2', NULL, NULL, 'Via Achille Vertunni, 26', '41.905847', '12.614205', NULL, NULL, NULL, NULL, 'Roma', '00155', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB852', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(25, NULL, NULL, '3x2', NULL, NULL, 'Via di Tor Tre Teste, 125', '41.877248', '12.588896', NULL, NULL, NULL, NULL, 'Roma', '00169', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB869', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(26, NULL, NULL, '3x2', NULL, NULL, 'Via Populonia, 36', '41.876673', '12.506151', NULL, NULL, NULL, NULL, 'Roma', '00183', NULL, NULL, 'PUBBLI LEVEL', 'MG Marketing Agency', 'BB969', '', 'Tradizionale', 'Poster', 'monofacciale', '', 'Roma', '', '', ' € 5.000 ', ' € 10.000 '),
(28, NULL, NULL, '3x2', NULL, NULL, 'Via Como 25', '45.5893507', '8.9111801', NULL, NULL, NULL, NULL, 'Milano', '20025', NULL, NULL, 'Adriano Cipriani', 'Adriano Cipriani', 'AC8741', 'AC8741', 'LED', 'Futuristico', '2', 'Legnano', 'Milano', 'Strada', 'Nuovo circuito', '800', '1200');

这是campagne_cliente表的内容,你可以看到id 44:

INSERT INTO `campagne_cliente` (`id_campagna_cliente`, `cliente_id_campagna`, `impianto_id_campagna`, `nome_campagna_cliente`) VALUES
(48, 3, 44, '');

这是campagne表的内容,可以看到campagne_cliente.id_campagna_cliente 48的id:

INSERT INTO `campagne` (`id_campagna`, `data_inizio`, `data_fine`) VALUES
(48, '2018-12-12', '2018-12-13');

最佳答案

SELECT campagne_cliente.impianto_id_campagna, COUNT(campagne_cliente.impianto_id_campagna)
FROM campagne_cliente
WHERE campagne_cliente.impianto_id_campagna NOT IN
(SELECT store_locator.id FROM store_locator WHERE store_locator.id IS NOT NULL)
GROUP BY campagne_cliente.impianto_id_campagna

关于mysql - 查询 : Count how many times a parameter in one table does not exist in another,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53743552/

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