two - SQL Inner-join con 3 tablas?
left join sql (10)
Esta consulta funcionará para usted
Select b.id as ''id'', u.id as ''freelancer_id'', u.name as
''free_lancer_name'', p.user_id as ''project_owner'', b.price as
''bid_price'', b.number_of_days as ''days'' from User u, Project p, Bid b
where b.user_id = u.id and b.project_id = p.id
Estoy tratando de unir 3 tablas en una vista; Aquí está la situación:
Tengo una tabla que contiene información de los estudiantes que están solicitando vivir en este campus universitario. Tengo otra tabla que enumera las Preferencias de Hall (3 de ellas) para cada Estudiante. Pero cada una de estas preferencias es simplemente un número de identificación, y el número de identificación tiene un nombre Hall correspondiente en una tercera tabla (no diseñó esta base de datos ...)
Más o menos, tengo INNER JOIN en la mesa con sus preferencias y su información, el resultado es algo así como ...
John Doe | 923423 | Incoming Student | 005
Donde 005 sería el HallID. Así que ahora quiero hacer coincidir ese HallID con una tercera tabla, donde esta tabla contiene un HallID y HallName.
Así que bastante, quiero que mi resultado sea como ...
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
EDITAR aquí es lo que tengo actualmente
SELECT
s.StudentID, s.FName,
s.LName, s.Gender, s.BirthDate, s.Email,
r.HallPref1, r.HallPref2, r.HallPref3
FROM
dbo.StudentSignUp AS s
INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r
ON s.StudentID = r.StudentID
INNER JOIN HallData.dbo.Halls AS h
ON r.HallPref1 = h.HallID
Esta es la consulta correcta para la tabla de unión 3 con el mismo ID **
select a.empname,a.empsalary,b.workstatus,b.bonus,c.dateofbirth from employee a, Report b,birth c where a.empid=b.empid and a.empid=c.empid and b.empid=''103'';
primera mesa de empleados Informe de la segunda mesa. tercera mesa de nacimiento
Puedes hacer lo siguiente (lo adiviné en los campos de la tabla, etc.)
SELECT s.studentname
, s.studentid
, s.studentdesc
, h.hallname
FROM students s
INNER JOIN hallprefs hp
on s.studentid = hp.studentid
INNER JOIN halls h
on hp.hallid = h.hallid
EDITAR:
En función de su solicitud de múltiples salas, podría hacerlo de esta manera. Simplemente únete en tu mesa de Hall varias veces para cada identificación de la habitación:
SELECT s.StudentID
, s.FName
, s.LName
, s.Gender
, s.BirthDate
, s.Email
, r.HallPref1
, h1.hallName as Pref1HallName
, r.HallPref2
, h2.hallName as Pref2HallName
, r.HallPref3
, h3.hallName as Pref3HallName
FROM dbo.StudentSignUp AS s
INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r
ON s.StudentID = r.StudentID
INNER JOIN HallData.dbo.Halls AS h1
ON r.HallPref1 = h1.HallID
INNER JOIN HallData.dbo.Halls AS h2
ON r.HallPref2 = h2.HallID
INNER JOIN HallData.dbo.Halls AS h3
ON r.HallPref3 = h3.HallID
Si tienes 3 tablas con la misma ID
para unirte, creo que sería así:
SELECT * FROM table1 a
JOIN table2 b ON a.ID = b.ID
JOIN table3 c ON a.ID = c.ID
Simplemente reemplaza *
con lo que quieras obtener de las tablas.
Solo necesita una segunda unión interna que vincule el ID Number
que tiene ahora con el ID Number
de ID Number
de la tercera tabla. Luego, reemplace el ID Number
por el Hall Name
del Hall Name
y voilá :)
SELECT
A.P_NAME AS [INDIVIDUAL NAME],B.F_DETAIL AS [INDIVIDUAL FEATURE],C.PL_PLACE AS [INDIVIDUAL LOCATION]
FROM
[dbo].[PEOPLE] A
INNER JOIN
[dbo].[FEATURE] B ON A.P_FEATURE = B.F_ID
INNER JOIN
[dbo].[PEOPLE_LOCATION] C ON A.P_LOCATION = C.PL_ID
SELECT *
FROM
PersonAddress a,
Person b,
PersonAdmin c
WHERE a.addressid LIKE ''97%''
AND b.lastname LIKE ''test%''
AND b.genderid IS NOT NULL
AND a.partyid = c.partyid
AND b.partyid = c.partyid;
SELECT column_Name1,column_name2,......
From tbl_name1,tbl_name2,tbl_name3
where tbl_name1.column_name = tbl_name2.column_name
and tbl_name2.column_name = tbl_name3.column_name
SELECT table1.col,table2.col,table3.col
FROM table1
INNER JOIN
(table2 INNER JOIN table3
ON table3.id=table2.id)
ON table1.id(f-key)=table2.id
AND //add any additional filters HERE
select empid,empname,managename,[Management ],cityname
from employees inner join Managment
on employees.manageid = Managment.ManageId
inner join CITY on employees.Cityid=CITY.CityId
id name managename managment cityname
----------------------------------------
1 islam hamza it cairo