Necesito seleccionar desde la aplicación de la tabla (izquierda) y los services de tabla (derecha) el nombre de los valores en la tabla del medio. ya que la tabla central contiene todas las keys externas de la aplicación de tabla y los services. Sé que se supone que debo usar join o algo así. ¡AYUDA!
Definiciones de tabla:
Tabla 1: Aplicación
Column 1: int ApplicationID (PK) Column 2: nvarchar(255) Name
Tabla 2: Servicio
Column 1: int ServiceID (PK) Column 2: nvarchar(255) Name
Tabla de asignación: ApplicationToService
Column 1: int ApplicationToServiceID (PK) Column 2: int ApplicationID (FK) Column 3: int ServiceID (FK)
De hecho, necesitarás un command JOIN.
En el siguiente ejemplo, uso el command INNER JOIN porque es el más utilizado (al less para mí), pero puede replacelo con otro join si lo prefiere.
Aquí hay un diagtwig de los diferentes types de uniones a su disposition:
Basado en la suposition de que sus tablas son:
Tabla 1: Aplicación
Tabla 2: Servicio
Tabla de asignación: ApplicationToService
Ejemplo:
SELECT * FROM ApplicationToService INNER JOIN Application ON ApplicationToService.ApplicationID = Application.ApplicationID INNER JOIN Service ON ApplicationToService.ServiceID = Service.ServiceID
Puede replace el * con campos individuales, pero como ahora se ocupa de varias tablas, debe preceder cada nombre de columna con el nombre de la tabla de la siguiente manera:
SELECT ApplicationToService.ApplicationToServiceID , Application.Name , Service.Name FROM ApplicationToService INNER JOIN Application ON ApplicationToService.ApplicationID = Application.ApplicationID INNER JOIN Service ON ApplicationToService.ServiceID = Service.ServiceID
Sus nombres de tabla y columna pueden ser less detallados que los míos, pero me parece una buena práctica mantenerlos descriptivos.
Si necesita más explicaciones, no dude en preguntar.
select * from appmaster a inner join appservmap asm on a.appid=asm.appid inner join servicemaster s on asm.servid=s.servid