【发布时间】:2022-01-17 14:06:05
【问题描述】:
我有一张这样的桌子 http://sqlfiddle.com/#!9/052381/1
我需要创建一个请求来查找满足以下条件的 VIN 代码:
- VIN 以 XTA% 开头
- 我有注册历史:date_reg_last 值:1306440000,1506715200,1555963200。您只需要选择恰好具有这些值的 VIN 代码。如果有更多或更少的记录 - VIN 不匹配
- 我有一个与值1306440000,1506715200,1555963200:2,2,2匹配的owner_type。即。对于记录 1306440000,owner_type 必须为 2,对于记录 1506715200,也必须为 2,依此类推。每个条目的类型可以不同。
- 与第三点类似,我有区域:УЛЬЯНОВСК Г.,УЛЬЯНОВСК Г.,С РУНГА
- 我有一年,应该在所有记录中。
我尝试提出这样的请求
SELECT *
FROM `ac_gibdd_shortinfo`
WHERE `vin` LIKE 'XTA%'
AND `model` LIKE '%1119%'
AND `date_reg_first` IN (0,1506715200,1555963200)
AND `date_reg_last` IN (1306440000,1506715200,1555963200)
AND `year` LIKE '2011'
AND `location` IN ('УЛЬЯНОВСК Г.','С РУНГА')
但它会查找具有不同数量的注册记录的记录。只有一个想法:获取所有匹配的记录,然后通过附加请求按编号过滤它们。
【问题讨论】:
-
modelLIKE '%1119%' 出现在查询中但不在需求列表中? -
如果有更多或更少的记录 - VIN 不匹配 你的意思是如果特定 VIN 有 2 行,其中一个带有列表中的日期和另一个日期不在列表中,那么这些行都不能返回? PS。显示小提琴数据的所需输出。
-
P.Salmon,对不起,我忘了加上这个条件。但这是一个简单的条件,我对此没有问题。 @Akina,你是对的。最终列表只需要包含这个 VIN:XTA111930B0149393 并且有 3 条记录,id 为:38483146、98294552 和 112853476
-
date_reg_last是唯一有这种限制的列吗? -
@P.Salmon,我需要从我的请求中获取按 VIN 码记录的记录总数为 3 的记录:计数 (1306440000,1506715200,1555963200) 和其他参数