我正在处理的数据库有表 services
和orders
.
每个service
有一个外键引用作为列 fk_order
.
现在,服务有 type
柱子。每当有新的order
在网络应用程序中创建,他们会自动获得 service
type
其中'ORDERHANDLE'
在某个时候存在一个错误,可能会造成一些 orders
的情况最终会得到不止一个 service
与 type
'ORDERHANDLE'
指的是他们。
我现在想做的是进行查询,检查是否有多个(多个)service
类型为 'ORDERHANDLE'
的行指的是一个fk_order
。因为只有一个ORDERHANDLE
type
的service
应该指的是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/