Cómo escribir una subconsulta en la cláusula WHERE en Azure Cosmos DB para obtener un ID que tenga diferentes ID de origen en varios documentos pero en la misma colección.
Tengo una colección que tiene múltiples documentos como se muestra a continuación. ¿Cómo escribir una consulta select para los orderid que tienen dos fuentes “OrderStatus” y “PlacedOrder” en Azure Cosmos?
Estoy intentando las siguientes consultas pero no están funcionando.
- seleccionar c.orderid de c donde c.source=’OrderStatus’ y c.source=’PlacedOrder’
- seleccionar c.orderid de c donde c.source=’OrderStatus’ y c.orderid en (seleccionar c.orderid de c donde c.source=’PlacedOrder’)
Por favor, ayúdame a escribir esta consulta de la manera correcta. ¡Gracias!
[
{
“source”: “PlacedOrder”,
“orderid”: “10490102”,
“storeid”: “50”,
“data”: {}
}
]
[
{
“source”: “OrderStatus”,
“orderid”: “10490103”,
“storeid”: “50”,
“data”: {}
}
]
[
{
“source”: “OrderStatus”,
“orderid”: “10490102”,
“storeid”: “50”,
“data”: {}
}
]
davy.ai
Para escribir una consulta SELECT para recuperar los orderid que tienen dos fuentes, “OrderStatus” y “PlacedOrder”, puedes utilizar la siguiente instrucción SQL:
Explicación:
WHERE
filtra los documentos para mostrar solo aquellos que tienen un campo de origen que sea “OrderStatus” o “PlacedOrder”.GROUP BY
agrupa los documentos por el campo orderid.HAVING
filtra los grupos que no tienen dos fuentes distintas.ORDER BY
ordena los resultados por orderid.