두 테이블의 동일한 필드에 대해 서로 다른 데이터 값을 쿼리하는 방법
두 테이블에 있는 동일한 필드의 서로 다른 데이터 값을 쿼리하는 방법
예:
테이블 A의 필드 a에는 40,000개의 데이터가 있습니다.
테이블 B의 필드 a에는 60,000개의 데이터가 있으며 그 중 40,000개의 데이터가 있습니다. 데이터는 테이블 A의 데이터와 동일합니다. 동일한 20,000개의 서로 다른 데이터를 어떻게 쿼리할 수 있습니까?
create table table1(id int,name varchar(10)); create table table2(id int,score int); insert into table1 select '1','lee'; insert into table1 select '2','zhang'; insert into table1 select '3','steve'; insert into table1 select '4','wang'; insert into table2 select '1','90'; insert into table2 select '2','100'; insert into table2 select '3','70';
as table
table1
------------ ------ --------
아이디 이름
1 lee
2 zhang
4 wang
1 90
2 100
select * from table1 t1 left join table2 t2 on t1.id = t2.id
3 steve 3 70-------------결과------------ id 이름 id 점수
---------------------------------
1 lee 1 90
2 zhang 2 100
- -------------
1 | 선택 * from table1 t1 왼쪽 join table2 t2 on t1 .id = t2.id WHERE t2.id 는 null select * from table1 t1 left join table2 t2 on t1.id = t2.id WHERE t2.id is null
|
-------------结果-------------
id name id score
4 wang null null
------------------------------
下面是工作中实际遇到的情况:
##过滤出0销售人员(即没有销售记录的员工信息列表)。
#销售人员(用户角色中间表)
1 |
select userid from bbscs_role_user where roleid = 'sales'
|
# ---> 11条记录
#统计表(用户销售记录表)
1 |
select refid from bbscs_sales_income_stat where type = 4 and month = '2012-02' and amount != 0
|
select
userid
from
bbscs_role_user
여기서
roleid =
'sales'
🎜🎜🎜🎜🎜🎜🎜 🎜🎜 # ---> 11개 레코드 🎜🎜 🎜🎜#Statistics 테이블( 사용자 판매 레코드 테이블) 🎜🎜🎜🎜🎜🎜1🎜🎜🎜🎜🎜select
refid
from
bbscs_sales_income_stat
여기서
유형 = 4 <code class="sql color1">및
월
=
'2012-02'
및
금액 != 0
🎜🎜🎜🎜🎜🎜
# ---> 4개 기록
요건은 다음과 같습니다. 기타 영업사원 7명의 기록을 목적으로 기재합니다.
##########SQL 문 모델입니다 BEGIN##########
1 |
선택 * from b t2 왼쪽 join a t1 on t1.a1 = t2.b1 WHERE t1 .a1 is null select * from b t2 left join a t1 on t1.a1 = t2.b1 WHERE t1.a1 is null
|
#########这个是SQL语句模型 END############
说明:左表是数据多的那个表(基准表如b表)。left join查询。where条件是右边的那个表(a表)某个字段(a1)为Null作为(判断字段)
##将SQL返回结果作为临时表来查询
1
2
3
|
select * from ( select userid from bbscs_role_user where roleid = 'sales' ) t2 left join ( select refid from bbscs_sales_income_stat where type = 4 and month = '2012-02' and amount != 0) t1 on t2.userid = t1.refid WHERE t1.refid is null
|
선택
*
from
(
선택
사용자 ID
from
bbscs_role_user
여기서
roleid =
'판매'
) t2 왼쪽
🎜join
(<code class="sql 키워드">선택
재수정
에서
bbscs_sales_income_stat 여기서
유형 = 4
및
월
=
'2012-02' 🎜 <div class="line number3 index2 alt2">
<code class="sql color1">및
amount != 0) t1
설정
t2.userid = t1.refid
WHERE
t1.reid
is
null
🎜🎜🎜🎜🎜🎜…值) 这个语句查询还是存在问题。
1
2
및 t1.roleid = '판매' 및 t2.type = 4 및 t2. 월 = '2012 -02' 및 t2.amount != 0 여기서 t2.id 는 null ;
|
##表与表,条件与条件独立流来。 select t1.Userid from bbscs_role_user t1 left join bbscs_sales_income_stat t2 on t1.userid = t2.refid
and t1.roleid = 'sales' and t2.type = 4 and t2. month = '2012-02' and t2.amount != 0 where t2.id is null ;
|
##表与表,条件与条件独立出来。
# --->18条记录
测试二:
1
2
|
select t1.Userid from bbscs_role_user t1 left join bbscs_sales_income_stat t2 on t1.userid = t2.refid
and t1.roleid = 'sales' and t2.type = 4 and t2. month = '2012-02' and t2.amount != 0 and t2.id is null # --->18条记录 |
선택
t1.Userid
from
bbscs_role_user t1
left
join <code class="sql plain">bbscs_sales_income_stat t2
설정
t1.userid = t2.refid code>🎜🎜<code class="sql color1">및
t1.roleid =
'판매'
및
t2.type = 4
및
t2.
월
=
' 2012-02'
및
t2.amount != 0
그리고
t2.id
는
null
🎜 🎜🎜🎜🎜🎜##where or and Difference
# --->22 records
###더 강력해진 임시 테이블 쿼리 기능, 위의 쿼리 결과를 전체적으로 넣어보세요.
##은 사용자 부서 중간 테이블과 연관되어 있으며 부서 ID별로 정렬되어 표시됩니다.
1
2
3
|
선택 t4.userid from ( 선택 * from ( 선택 사용자 ID from bbscs_role_user 여기서 roleid = '판매' ) t2 왼쪽 조인 select t4.userid from ( select * from ( select userid from bbscs_role_user where roleid = 'sales' ) t2 left join ( select refid from bbscs_sales_income_stat where type = 4 and month = '2012-02' and amount != 0) t1 on t2.userid = t1.refid WHERE t1.refid is null ) t3, bbscs_org_user t4 where t3.userid = t4.userid order by orgId
( 선택 refid from bbscs_sales_income_stat 여기서 type = 4 및 월 = '2012-02' 및 amount != 0) t1 on |
위 내용은 두 테이블의 동일한 필드에 대해 서로 다른 데이터 값을 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL 데이터베이스에서 사용자와 데이터베이스 간의 관계는 권한과 테이블로 정의됩니다. 사용자는 데이터베이스에 액세스 할 수있는 사용자 이름과 비밀번호가 있습니다. 권한은 보조금 명령을 통해 부여되며 테이블은 Create Table 명령에 의해 생성됩니다. 사용자와 데이터베이스 간의 관계를 설정하려면 데이터베이스를 작성하고 사용자를 생성 한 다음 권한을 부여해야합니다.

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

Navicat 자체는 데이터베이스 비밀번호를 저장하지 않으며 암호화 된 암호 만 검색 할 수 있습니다. 솔루션 : 1. 비밀번호 관리자를 확인하십시오. 2. Navicat의 "비밀번호 기억"기능을 확인하십시오. 3. 데이터베이스 비밀번호를 재설정합니다. 4. 데이터베이스 관리자에게 문의하십시오.

1. 올바른 색인을 사용하여 스캔 한 데이터의 양을 줄임으로써 데이터 검색 속도를 높이십시오. 테이블 열을 여러 번 찾으면 해당 열에 대한 인덱스를 만듭니다. 귀하 또는 귀하의 앱이 기준에 따라 여러 열에서 데이터가 필요한 경우 복합 인덱스 2를 만듭니다. 2. 선택을 피하십시오 * 필요한 열만 선택하면 모든 원치 않는 열을 선택하면 더 많은 서버 메모리를 선택하면 서버가 높은 부하 또는 주파수 시간으로 서버가 속도가 느려지며, 예를 들어 Creation_at 및 Updated_at 및 Timestamps와 같은 열이 포함되어 있지 않기 때문에 쿼리가 필요하지 않기 때문에 테이블은 선택을 피할 수 없습니다.

Navicat Premium을 사용하여 데이터베이스 생성 : 데이터베이스 서버에 연결하고 연결 매개 변수를 입력하십시오. 서버를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 생성을 선택하십시오. 새 데이터베이스의 이름과 지정된 문자 세트 및 Collation의 이름을 입력하십시오. 새 데이터베이스에 연결하고 객체 브라우저에서 테이블을 만듭니다. 테이블을 마우스 오른쪽 버튼으로 클릭하고 데이터 삽입을 선택하여 데이터를 삽입하십시오.

MySQL에서 테이블을 복사하려면 새 테이블을 만들고, 데이터를 삽입하고, 외래 키 설정, 인덱스 복사, 트리거, 저장된 절차 및 기능이 필요합니다. 특정 단계에는 다음이 포함됩니다 : 동일한 구조를 가진 새 테이블 작성. 원래 테이블의 데이터를 새 테이블에 삽입하십시오. 동일한 외래 키 제약 조건을 설정하십시오 (원래 테이블에 하나가있는 경우). 동일한 색인을 만듭니다. 동일한 트리거를 만듭니다 (원래 테이블에 하나가있는 경우). 동일한 저장된 절차 또는 기능을 만듭니다 (원래 테이블이 사용되는 경우).

MariaDB 용 Navicat은 암호가 암호화 된 양식으로 저장되므로 데이터베이스 비밀번호를 직접 볼 수 없습니다. 데이터베이스 보안을 보장하려면 비밀번호를 재설정하는 세 가지 방법이 있습니다. Navicat을 통해 비밀번호를 재설정하고 복잡한 비밀번호를 설정하십시오. 구성 파일을 봅니다 (권장되지 않음, 위험이 높음). 시스템 명령 줄 도구를 사용하십시오 (권장되지 않으면 명령 줄 도구에 능숙해야 함).

다음 명령으로 MySQL 데이터베이스를보십시오. 서버에 연결하십시오. mysql -u username -p password run show database; 기존의 모든 데이터베이스를 가져 오려는 명령 데이터베이스 선택 : 데이터베이스 이름 사용; 보기 테이블 : 테이블 표시; 테이블 구조보기 : 테이블 이름을 설명합니다. 데이터보기 : 테이블 이름에서 *를 선택하십시오.
