java - SQL:如何进行查询,检查列上具有特定值的行是否多次引用外键?

标签 java sql sql-server foreign-keys

我正在处理的数据库有表 servicesorders .

每个service有一个外键引用作为列 fk_order .

现在,服务有 type柱子。每当有新的order在网络应用程序中创建,他们会自动获得 service type其中'ORDERHANDLE'

在某个时候存在一个错误,可能会造成一些 orders 的情况最终会得到不止一个 servicetype 'ORDERHANDLE'指的是他们。

我现在想做的是进行查询,检查是否有多个(多个)service类型为 'ORDERHANDLE' 的行指的是一个fk_order 。因为只有一个ORDERHANDLE typeservice应该指的是order .

感谢您的建议。

这是我到目前为止的查询(是的,我是菜鸟。)

SELECT * FROM services
INNER JOIN orders
ON services.fk_order = order.id
WHERE services.type = 'ORDERHANDLE'

我只是不知道如何从那里继续。

最佳答案

您需要执行aggregation services 表的。您需要使用 COUNT 函数来计算 ORDERHANDLE 出现的次数。我不熟悉 sql-server 但这样的东西应该可以工作:

SELECT count(services.id) FROM orders
INNER JOIN services
ON services.fk_order = order.id
WHERE services.type = 'ORDERHANDLE'
GROUP BY orders.id
HAVING count(services.id) > 1

关于java - SQL:如何进行查询,检查列上具有特定值的行是否多次引用外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34872886/

相关文章:

java - Spring Integration - 设置发送消息的上限

java - PostgreSQL。通过具有特定 ID 的属性列表搜索值

java - 无法从 ApplicationAdapter 调用 Activity

java - 比较两个时间戳日期

java - 尝试检查 MySQL 中是否存在值

sql - 将左侧的 varchar 填充到一定长度的最有效的 T-SQL 方法?

sql - 如何删除所有表中的所有外键约束?

sql-server - 基于连接字符串/环境的 SSMS 颜色选项卡

java - 如何使用 JDO 中的对象列表更新对象

java - 了解Hadoop程序入口点和问题