Microsoft
Software
Hardware
Network
Cuestión : Encontrando los fósforos múltiples adentro ensamblan y también tener expedientes del “nieto” en el t-SQL
considerar estas 3 tablas: tblFirstTable
(
FirstTablePK internacional no nulo,
FirstTableKeyA VARCHAR (2) no falta de información,
FirstTableKeyB VARCHAR (6) no falta de información,
FirstTableAltKeyA VARCHAR (2) no falta de información,
FirstTableAltKeyB VARCHAR (6) no falta de información,
FirstTableAltKeyC VARCHAR (1) no falta de información,
FirstTableAltKeyX VARCHAR (2) no falta de información,
FirstTableAltKeyY VARCHAR (6) no falta de información, tblSecondTable
(
SecondTablePK internacional no nulo,
SecondTableKeyA VARCHAR (2) no falta de información,
SecondTableKeyB VARCHAR (6) no falta de información de la tabla del
create de la tabla del
create del
FirstTableAltKeyZ VARCHAR (1) no falta de información,
), el
The del tblThirdTable
(
ThirdTablePK internacional no nulo,
SecondTableFK internacional no nulo, null
de la tabla del
create del
SecondTableAltKeyX VARCHAR (2) no falta de información,
SecondTableAltKeyY VARCHAR (6) no falta de información,
SecondTableAltKeyZ VARCHAR (1) no falta de información, FECHA Y HORA del
Update_When no nula,
Update_By VARCHAR (50) no nulos,
) del
AgentName VARCHAR (20) no) ensambla entre tblFirstTable y tblSecondTable es el on
FirstTableKeyA = SecondTableKeyA Y el =SecondTableKeyB
For de FirstTableKeyB cada uno de éstos ensambla, para cada los valores correspondientes {FirstTableAltKeyX, FirstTa
bleAltKeyY
, FirstTabl
eAltKeyZ} del
there puede estar 1 o más valor adentro {SecondTableAltKeyX, Second
TableAltKe
yY, SecondT
ableAltKey
Z}. Ésta es la llave condition.
I quisiera seleccionar solamente expedientes de tblFirsttable cuando la condición dominante antedicha es satisfied y también si hay expediente del niño para tblSecondTable en tblThirdTable.
Example:
tblFirstTable
1, “AA”, “BBBBBB”, “cc”, “DDDD
DD”, “E”, “F
F”, “GGGGGG
”, “Br/>2 del H'<, “@@”, “######”, “$$”, “%%%%
%%”, “^”, “&
&”,”
', del ****** “(“
3, “QQ”, “WWWWWW”, “EE”, “RRRR
RR”, “T”, “Y
Y”, “UUUUUU
”, “Br/>
tblSecondTable
10 del I'<, “AA”, “BBBBBB”, “II”, “JJJ
JJJ”, “K”, d
atetime, Jo
hn
11, “AA”, “BBBBBB”,”, “MMM
MMM”, “N”, d
atetime, Ma
ry
12, “AA”, “BBBBBB”, “OO”, “PPP
PPP”, “Q”, d
atetime, Jo
e
13, “@@”, “######”, "))”, “---
---¡”, “=”, d
atetime, Ji
m
14, “@@”, “######”, “~~”, “!!! ¡
!!! ”, “; ”, el d
atetime, Ja
ck
15, “QQ”, “WWWWWW”, “AA”, “SSS
SSS”, el 'Br/>
tblThirdTable
20,11 del D'<, 'el Br/>21,12 del Racques'< de Miriam, 'el Br/>22,15 del Portes'< de Rogelio, 'el Br/>
*For “AA” del Penguert'< de Mike, “BBBBBB” en tblFirstTable, tenemos expedientes en tblSecondTable también, 3 de él. Tenemos tan fósforos múltiples. Éste es los criterios #1. Y por lo menos uno de ellos tiene un expediente del niño en tblThirdTable. Por lo tanto ambas condiciones satisfacen, y quisiéramos traer el expediente en tblFirstTable en el query.
*For “@@”, “######” en tblFirstTable, nosotros tenemos expedientes en tblSecondTable también, 2 de él. Tenemos tan fósforos múltiples. Éste es los criterios #1. Pero ningunos de ellos tienen expedientes del niño en tblThirdTable; porque los segundos criterios fallan, no tenemos que traer la fila de tblFirstTable.
*For “QQ”, “WWWWWW” en tblFirstTable, nosotros tenemos solamente un fósforo en tblSecondTable (ningunos fósforos del múltiplo). Aunque esto tiene un expediente del niño (los segundos criterios son satisfied), porque los primeros criterios no son satisfied, no traeremos la fila de tblFirstTable en el query.
how usted construiríamos el resultado deseado en el código t-SQL?.
thank you
class= del
Respuesta : Encontrando los fósforos múltiples adentro ensamblan y también tener expedientes del “nieto” en el t-SQL
Bien, pueden ser algunas estrategias como usted puede ver de antedicho…
Las relaciones subyacentes son resolved usar una base de (si necesitamos todos los detalles):
seleccionar T1.*, T2.*, T3.*
del T1 tblFirstTable
interno ensamblar el T2 tblSecondTable en T1.FirstTableKeyA = T2.SecondTableKeyA Y T1.FirstTableKeyB =T2.SecondTableKeyB
interno ensamblar el T3 tblThirdTable en T2.SecondTablePK = T3.SecondTableFK
-- En vista de que hay PK y FK asumimos la indexación de direcciones apropiada en ésos.
-- Así pues, razonable asumir la indexación de direcciones en las columnas de TableKeyA y de TableKeyB en sus tablas respectivas también.
-- Cuál significa que podemos ser razonablemente felices usar ensambla.
-- Pero necesitamos solamente realmente contadores… No detalles…
FirstTablePK selecto como FPK, cuenta (secondTablePK) como T2_count, cuenta (thirdTablePK) como T3_count
del T1 tblFirstTable
interno ensamblar el T2 tblSecondTable en T1.FirstTableKeyA = T2.SecondTableKeyA Y T1.FirstTableKeyB =T2.SecondTableKeyB
interno ensamblar el T3 tblThirdTable en T2.SecondTablePK = T3.SecondTableFK
grupo de FirstTablePK
teniendo cuenta (secondTablePK) > 1
-- Nota, no tenemos que contar T3_count realmente, porque el internos ensamblan resolverán la existencia por lo menos de 1 entrada en tblThirdTable
-- y realmente, no tenemos que seleccionar T2_count porque tener cláusula hace esa cuenta para nosotros
-- Pero hacemos necesitamos los detalles, tenemos que conseguir así pues, detrás los datos tblFirstTable.
seleccionar *
de (seleccionar FirstTablePK como FPK
del T1 tblFirstTable
interno ensamblar el T2 tblSecondTable en T1.FirstTableKeyA = T2.SecondTableKeyA Y T1.FirstTableKeyB =T2.SecondTableKeyB
interno ensamblar el T3 tblThirdTable en T2.SecondTablePK = T3.SecondTableFK
grupo de FirstTablePK
teniendo cuenta (secondTablePK) > 1) s
interno ensamblar tblFirstTable en FPK = FirstTablePK
-- ahora, tenemos una subconsulta para nuestro contador y seleccionamos detrás el tblFirstTable
-- Así pues, podemos partir realmente hacia fuera elementos de esa subconsulta así que referimos solamente a las tablas una vez si es posible
-- y porque es un contador simple, podemos realmente tener esa parte como la subconsulta solamente.
seleccionar *
del T1 tblFirstTable
Donde 1 <�> del T2 tblSecondTable
interno ensamblar el T3 tblThirdTable en T2.SecondTablePK = T3.SecondTableFK
donde T1.FirstTableKeyA = T2.SecondTableKeyA Y T1.FirstTableKeyB =T2.SecondTableKeyB)
-- pudo haber maneras adicionales de explorar, sino de pensar que da el mejor funcionamiento, y las deliberaciones/los pasos usados para conseguir a ese punto:)
Otras soluciones
Cómo fijar un número de líneas en un informe
Cómo fijar extremo del aeropuerto como servidor del DHCP en el LAN con SonicWall
Ediciones del enlace hipertexto
Agregar la fecha a MySQL
Pares de las preguntas de Apple
El DNS reverso no empareja la bandera del smtp
¿Cómo puedo funcionar conmigo PC en modo seguro?
HISTOGRAMA CON EL CP Y EL ANÁLISIS DE CPK
reglas no corrientes de la perspectiva
volver un valor