SQL 조인 후 쿼리된 테이블에서 데이터 제외
정확한 조인 구조를 생각하고 있지는 않지만 이번 조인에서 원하는 결과를 얻을 수 없을 것 같습니다.
이것은 이 3개의 테이블에 대한 나의 SQL 스키마입니다.
select target, sender, message, amount, transactiontime, transaction_id
from transactions
join accounts on transactions.sender=accounts.account_id
join users on users.user_id=accounts.user_id
where users.user_id=40
union
select target, sender, message, amount, transactiontime, transaction_id
from transactions
join accounts on transactions.target=accounts.account_id
join users on users.user_id=accounts.user_id
where users.user_id=40
order by transactiontime
limit 20;
이것은 제가 가지고 있는 쿼리이고 그것은 3개의 테이블을 통해 쿼리합니다.기본적으로 나는 내 트랜잭션 테이블의 정보만 원하지만 해당 사용자와 연관되지 않은 account_id는 제외하고 싶습니다.이 경우 사용자 ID는 40이고 account_id는 57입니다.어떻게 하면 그것을 없앨 수 있을지 궁금했습니다.기본적으로 3명이 나타나지 않게 하는 방법.또한 보너스로, 제 계정과 관련된 ID를 포함하기 위한 쿼리의 구조는 무엇입니까?예를 들어 account_id 4와 57이 한 사용자의 것이고 그들 사이에 돈이 흐르고 있었다고 가정합니다.트랜잭션 쿼리 테이블에서 4와 57을 모두 보려면 어떻게 해야 합니까?
"해당 사용자와 연결되지 않은 account_id를 제외한다"는 것은 "해당 사용자와 연결된 계정만 포함한다"는 의미가 아닙니까?
declare @user_id int = 40
select target, sender, message, amount, transactiontime, transaction_id
from transactions
join accounts on transactions.sender=accounts.account_id
OR transactions.target=accounts.account_id
where accounts.user_id=@user_id
발송인과 대상이 모두 동일한 사용자에게 속한 계정의 트랜잭션만 확인하는 것이 목표인 경우:
declare @user_id int = 40
select target, sender, message, amount, transactiontime, transaction_id
from transactions
join accounts as send on transactions.sender=send.account_id
join accounts as targ on transactions.target=targ.account_id
where send.user_id=@user_id
and targ.user_id=@user_id
지정된 사용자 ID에 대해 트랜잭션 테이블의 모든 정보를 원하는 경우:
select
*
from
transactions
where
transactions.user_id = 40
충분할 것입니다.당신은 그것이 필요하지 않습니다.union
동일한 쿼리에 대한 문 또는 사용자 테이블에 가입하기 위한 문입니다.
이러한 트랜잭션이 사용될 사용자의 모든 계정 ID를 나열하려면 다음을 사용할 수 있습니다.
select
target, sender, message, amount, transactiontime, transactions.transaction_id, accounts.account_id
from
transactions
inner join
accounts
on
transactions.target = accounts.user_id
언급URL : https://stackoverflow.com/questions/35652235/excluding-data-from-a-queried-table-after-sql-join
'programing' 카테고리의 다른 글
jquery, ID 내 클래스 선택기 (0) | 2023.08.29 |
---|---|
Count(*)>0보다 효율적으로 존재합니까? (0) | 2023.08.29 |
ADB 장치를 찾을 수 없음 (0) | 2023.08.29 |
C에서 2차원 배열의 요소에 액세스하기 위해 포인터 표현을 사용하는 방법은 무엇입니까? (0) | 2023.08.29 |
set-acl 및 powershell을 사용하여 상속 및 전파 플래그 설정 (0) | 2023.08.29 |