반응형
하나의 테이블에서 하나의 열을 통해 관계에 있는 두 개의 테이블에서 값을 가져오는 방법
두 개의 간단한 테이블 사이에 다음과 같은 관계가 있습니다.
Table USERS:
ID Name
100 User1
243 User2
681 User3
Table MSGS:
FromU ToUser Txt [... DTime]
243 100 Bla bla bla
100 243 Taaa
243 681 Bo bo bo
681 243 Mi mi miiii
681 100 Exemples
100 681 Very good
Relationship:
FromU -> ID (table USERS)
ToUser -> ID (table USERS)
어떻게 하면 한 사용자가 다른 사용자에게 보내는 모든 메시지와 다른 사용자와 사용자의 이름으로 받은 답변을 받을 수 있을까, 나는 방황합니다.
예를 들어 User2가 보낸 모든 메시지와 User2에게 보낸 메시지를 반환하려면 다음 데이터가 필요합니다.
FromU Name ToUser Name Txt
243 User2 100 User1 Bla bla bla
100 User1 243 User2 Taaa ...
243 User2 681 User3 Bo bo bo
681 User3 243 User2 Mi mi miiii
사용자 이름을 알 수가 없습니다.이 SQL로
SELECT FromU, ToUser, Txt
FROM msgs
WHERE FromU = 243 OR ToUser = 243
ORDER BY DTime ASC
알겠습니다.
243 100 Bla bla bla
100 243 Taaa ...
243 681 Bo bo bo
681 243 Mi mi miiii
감 잡히는 게 없어요?저는 MariaDB를 사용합니다.미리 감사드립니다!
사용자와 함께 조인을 사용해야 합니다(샘플에는 두 이름을 모두 얻기 위한 두 개의 조이가 있습니다).
"SELECT m.FromU, m.ToUser, m.Txt, u1.Name as from_name, u2.name as to_name
FROM msgs m
INNER JOIN user u1 on m.FromU = u1.id
INNER JOIN user u2 on m.ToU = u2.id
WHERE m.FromU = 243 OR m.ToUser = 243
ORDER BY m.DTime ASC"
MariaDB를 사용해 본 적은 없지만 TSSQL에서는 다음과 같은 작업을 수행합니다.
SELECT from.Name as FromUser, to.Name, Txt FROM MSGS INNER JOIN USERS AS from ON from.ID = FromU INNER JOIN USERS AS to ON to.ID = ToUser WHERE FromU = 243 OR ToUser =243
도움이 되길 바랍니다.
언급URL : https://stackoverflow.com/questions/50337523/how-to-get-values-from-two-tables-in-relationship-thru-one-column-in-one-table
반응형
'programing' 카테고리의 다른 글
jQuery에서 목록을 선택하는 옵션을 추가하는 방법 (0) | 2023.10.25 |
---|---|
SQL 열 이름이 올바른지 확인합니다. (0) | 2023.10.25 |
팬더와 함께 엑셀 **Table** 만드는 법to_excel()? (0) | 2023.10.25 |
MSSQL과 Maria 간의 인덱스 차이DB (0) | 2023.10.25 |
MySQL 테이블 열 이름을 지정하는 데 숫자를 사용할 수 있습니까? (0) | 2023.10.25 |