Javascript 无法确定如何仅显示具有相同值的表格数据
我正在使用nodejs、express、mysql和js。我有一个名为EVENT的表,我处理的一个查询是只显示表上具有相同开始时间的数据。基本上显示开始时间冲突的所有数据 我尝试了一系列不同的查询,但我无法使其正常工作 任何帮助都将不胜感激Javascript 无法确定如何仅显示具有相同值的表格数据,javascript,mysql,sql,node.js,Javascript,Mysql,Sql,Node.js,我正在使用nodejs、express、mysql和js。我有一个名为EVENT的表,我处理的一个查询是只显示表上具有相同开始时间的数据。基本上显示开始时间冲突的所有数据 我尝试了一系列不同的查询,但我无法使其正常工作 任何帮助都将不胜感激 db.query( 'select start_time FROM EVENT INNER JOIN select start_time FROM EVENT GROUP BY start_time HAVING COUNT(EV
db.query(
'select start_time
FROM EVENT
INNER JOIN select start_time FROM EVENT GROUP BY start_time HAVING COUNT(EVENT > 1)',
function (err, result) {
if (err) {
res.status(500).send({error: true, message: "Error Querying Database"});
// throw err;
}
你似乎想找出所有开始时间不唯一的记录。以下是一些按效率递减顺序排列的解决方案 在MySQL 8.0中,这可以通过窗口函数实现,如:
SELECT *
FROM (
SELECT e.*, COUNT(*) OVER(PARTITION BY start_time) cnt FROM events
) x WHERE cnt > 1
在早期版本中,可以将EXISTS条件与相关子查询一起使用:
SELECT *
FROM events e
WHERE EXISTS (
SELECT 1
FROM events e1
WHERE e1.start_time = e.start_time AND e1.id != e.id
)
这假设您有一个列,可用于消除具有相同开始时间(我称之为id)的记录的歧义。如果没有,则可以将IN条件与列出多次发生的开始时间的相关子查询一起使用,如:
SELECT *
FROM events
WHERE event_date IN (
SELECT start_time FROM events GROUP BY start_time HAVING COUNT(*) > 1
)
请您向我们展示示例数据和预期输出,或者加入到内联视图中选择e.*从选择c.start\u时间从事件c组按c.start\u时间SUM1>1 d加入事件e在e.start\u时间d.start\u时间+10在这种情况下,问题是一个非常明显的重复,您应该投票关闭它,不要再回答了。@Shadow:好的,同意了…@spencer7593:是的,很好。。。我个人更喜欢内联视图而不是IN方法,并将其列为我的第三个选择!