2

私がテーブルを持っていて、別のPerson3 を持っているとしましょう..これらの 3 つのテーブルには、名前、姓などの共通の属性が含まれています.. table からの共通情報、どうすればそれを行うことができますか?DoctorPolicemanLawyeridPersonPerson

みたいなことをやってみました(右結合、左結合、内結合のすべての組み合わせを入れてプレイ)

SELECT Person.* 
FROM Person 
RIGHT JOIN doctor ON doctor.idPerson = person.idPerson 
LEFT JOIN lawyer ON lawyer.idPerson = person.idPerson
4

3 に答える 3

3

結合を使用する代わりに、使用する方が簡単であることがわかる場合がありますEXISTS

SELECT col1, col2, ... coln
FROM Person
WHERE EXISTS (
    SELECT * FROM Doctor WHERE Doctor.idPerson = Person.idPerson
) OR EXISTS (
    SELECT * FROM Lawyer WHERE Lawyer.idPerson = Person.idPerson
) 
于 2012-05-15T19:43:20.090 に答える
1

これを試して

SELECT Person.* 
FROM Person 
LEFT JOIN doctor ON doctor.idPerson = person.idPerson 
LEFT JOIN lawyer ON lawyer.idPerson = person.idPerson
WHERE lawyer.idPerson IS NOT NULL 
OR doctor.idPerson IS NOT NULL 
于 2012-05-15T19:43:32.030 に答える
1
SELECT Person.* FROM Person 
left outer JOIN doctor ON doctor.idPerson = person.idPerson 
LEFT outer JOIN lawyer ON lawyer.idPerson = person.idPerson
where doctor.personid is not null
or laywer.personid is not null
于 2012-05-15T19:43:50.297 に答える