Estoy creando un menú y submenús en una variable de tabla. (Registros típicos de hijo principal en la misma tabla) ParentID coll es nulo para todos los menús principales. Y para su hijo ParentID será el MenuId de estos menús principales. (Dependiendo de qué tipo de registros de usuario es build) Ahora lo que tengo que hacer es si un padre particular no tiene ningún hijo. Quiero eliminar esta repetición primaria de esta variable de tabla.
Sé que puedo con el cursor o por la operación fila por fila. ¿Puedo hacerlo de otra manera?Eliminar el registro principal si el hijo no está presente
5
A
Respuesta
3
Sin ver su estructura de tabla que es difícil decir que la consulta exacta que se necesita, pero, si he entendido bien su pregunta, sólo tiene que hacer algo como esto:
DELETE T
FROM MyTable T
WHERE NOT EXISTS(SELECT * FROM MyTable WHERE ParentID = T.MenuID)
AND T.ParentID IS NULL
Esta consulta hace una subconsulta correlacionada para encontrar todos los registros del menú que no tienen registros secundarios. Se utiliza la cláusula de SQL EXISTS
1
Se podría hacer algo como esto:
delete from yourtable yt where not exists (select * from yourtable yt2 where yt.id = yt2.parentid) and yt.parentid is null
4
Un solo estado como este debería hacerlo (como existe una alternativa al uso):
delete p
from
tblMenu p
left join tblMenu c on p.ID = c.ParentID
where
p.ParentID is null --Ensures that the item to delete is at the top
and c.ParentID is null --Finds top level items with no children
Cuestiones relacionadas
- 1. jQuery Ocultar el div principal si el div hijo está vacío
- 2. C# Determinar si el objeto está presente en una imagen
- 3. cómo detectar si el modo de acción ya está presente
- 4. Cómo detectar si un micrófono está presente
- 5. nodo de retorno si la relación no está presente
- 6. Eliminar línea si el campo está duplicado
- 7. Compruebe si la consola está presente
- 8. Dinámica Incluyendo jQuery usando JavaScript si no está presente
- 9. ¿Dónde está el registro de construcción "principal" de TFS 2010?
- 10. ¿Cómo comprobar si el elemento no es el primer hijo?
- 11. insertar o actualizar si el registro está en la tabla
- 12. PHP SOAP El procedimiento 'functionName' no está presente
- 13. Selenium 2 - ¿Cómo comprobar si el elemento no está presente mientras espera implícitamente?
- 14. XSLT valor de variable predeterminado si el valor no está presente
- 15. Agregar hijo al registro principal existente en el marco de la entidad
- 16. ¿Cómo detectar si un micrófono está presente en Android?
- 17. Comprobar si Java está presente antes de instalar
- 18. Rieles: ¿cómo validar el formato solo si el valor está presente?
- 19. Si el elemento padre no contiene cierto elemento hijo; jQuery
- 20. Seleccione el número de días que un registro está presente dentro de un determinado año/mes
- 21. SQLAlchemy: compruebe si el objeto ya está presente en la tabla
- 22. Los subprocesos hijo salen cuando finaliza el subproceso principal
- 23. Identificación de si el registro/objeto está sucio en Rails
- 24. Eliminar el nodo principal y los nodos hijo seleccionados: se modificó la recopilación; operación de enumeración no puede ejecutarse
- 25. Cómo verificar si un valor de matriz profunda está presente
- 26. Buscar si una cadena está presente en una matriz
- 27. Quiero ver si un personaje está presente en una cadena
- 28. determinar si una llave está presente en un diccionario
- 29. Mostrar el elemento hijo encima del elemento principal usando CSS
- 30. Eliminar archivo si actualmente no se está accediendo
¿Quieres hacer esto como un trabajo de mantenimiento (es decir, una vez), o como una ocurrencia regular, cada vez que un niño se borra? – Oded