[SQL] 어떻게 ID를 사용하여 여러 SQL 테이블을 가입 할 수 있습니까?
SQL어떻게 ID를 사용하여 여러 SQL 테이블을 가입 할 수 있습니까?
내가 가입하고자하는 4 개 개의 테이블이있다. 다음과 같이 테이블 컬럼으로 구성되어 있습니다 :
TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD
표 A부터 나는 테이블을 조인하는 방법을 이해하고 나부터, B를 사용하여 c를 해당 테이블에 대한 기본 키가 있습니다. 나는 테이블뿐만 아니라 TableA의에 상정 가입 할 수 있어야합니다. 다음은 첫 번째 테이블 A와 B를 조인 내 SQL 문은 다음 조인 C에 해당 :
SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
WHERE (DATE(TableC.date)=date(now()))
나는 또 다른 D를 포함하는, 가입 추가하려고하면, 나는 '건의'는 알 수 없다는 오류가 발생합니다 :
SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
INNER JOIN TableA ta ON(ta.dID= TableD.dID)
WHERE (DATE(TableC.date)=date(now()))
해결법
-
==============================
1.이 같은 더 뭔가를 원하는 :
이 같은 더 뭔가를 원하는 :
SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM TableA JOIN TableB ON TableB.aID = TableA.aID JOIN TableC ON TableC.cID = TableB.cID JOIN TableD ON TableD.dID = TableA.dID WHERE DATE(TableC.date)=date(now())
당신의 예에서, 당신은 실제로 건의 포함되지 않습니다. 모두 당신이해야 할 또 다른 당신이 전에했던 것처럼 조인을 수행합니다.
참고 사항 : 당신은 그들이 정말 당신이 그들을 있었다 대부분의 경우 필요하지 않습니다, 나는 당신의 괄호의 대부분을 제거 통지하고, 코드를 읽으려고하는 경우에만 혼란을 추가합니다. 적절한 중첩이 코드를 읽을 수 밖으로 분리 할 수있는 가장 좋은 방법입니다.
-
==============================
2.
SELECT a.nameA, /* TableA.nameA */ d.nameD /* TableD.nameD */ FROM TableA a INNER JOIN TableB b on b.aID = a.aID INNER JOIN TableC c on c.cID = b.cID INNER JOIN TableD d on d.dID = a.dID WHERE DATE(c.`date`) = CURDATE()
-
==============================
3.당신은 단지 테이블 중 하나에서 건의 필드 (DID)를 선택, 상정 가입하지 않았습니다.
당신은 단지 테이블 중 하나에서 건의 필드 (DID)를 선택, 상정 가입하지 않았습니다.
-
==============================
4.
CREATE VIEW room_view AS SELECT a.*,b.* FROM j4_booking a INNER JOIN j4_scheduling b on a.room_id = b.room_id;
from https://stackoverflow.com/questions/9853586/how-can-i-join-multiple-sql-tables-using-the-ids by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 항상 NVARCHAR (MAX)를 사용하는 불이익이 있습니까? (0) | 2020.03.21 |
---|---|
[SQL] 다른 테이블에서 추출한 테이블 레코드에 INSERT 작업을 수행하는 방법 (0) | 2020.03.21 |
[SQL] 필드 단어가 포함 된 SQL SELECT (0) | 2020.03.21 |
[SQL] COUNT (*)는 항상 결과를 반환합니까? (0) | 2020.03.20 |
[SQL] EXCEPT SELECT * (0) | 2020.03.20 |