USING을 사용합니다.테이블 A의 데이터와 테이블 B의 데이터를 표시하는 Sql 쿼리. 테이블 A의 parent_id가 테이블 B에서 찾았습니다.
두 개의 테이블이 있습니다. 표 A 및 표 B.
표 A 난이 쿼리를 수행하려고 테이블 B.이 ID는 테이블 A에 crm_field 및 PARENT_ID 식별 표 B. 관련된 ID
를 가지고 어떤 값을 갖는다.
select *
from tableA inner join tableB ON tableA.crm_field=tableB.parent_field
WHERE tableA.id = '75' AND
tableA.category != 'null' AND
tableA.category != 'No Category'
내 예상 결과는 어디 요구 사항을 충족 TABLEA의 데이터가 TABLEA의 crm_field의에 PARENT_ID 동등한를 보유하고 TableB의의와 함께 표시 할 것입니다.
실제 결과는 값을 보유하는 parent_id를 제외하고는 tableB가 표시됩니다. 또한 crm_field = 0 및 parent_id = 0, crm_field 22 때 같은 parent_id 찾을 수있는 실제 값을 쿼리 할 때 그것을 쿼리 할 것으로 보인다.
select *
from tableA inner join tableB ON tableA.crm_field=tableB.parent_field
WHERE tableA.id = '75' AND
tableA.category != 'null' AND
tableA.category != 'No Category' AND
tableA.crm_field != '0'
을하지만, 그것은 단지 내가 TABLEA에 추가 할 필요 TableB의에서 데이터를 보여 주었다 : 시도 대신이 일을.
조인 쿼리를 사용하여이 작업을 수행하는 방법은 무엇입니까?
그렇지 않은 경우 이중 쿼리를 수행 할 수도 있습니다.
감사
샘플 출력
이 -if0|dog|0|hi
1|cat|22|hi
2|wild|22
도 가능하다 :
tableA
id|name|crm_field|category
0|dog|0|hi
1|cat|22|hi
2|bear|0|null|
tableB
id|name|parent_id|
0|wild|22|
1|foo|0|
디스플레이는이 같은되어야 하는가?
crm_field 일부 값이 있습니다
내가 여기 달성하기 위해 노력하고있어 지점에 도착하면이입니다.그러나 쿼리가 crm_field에서 22 또는 21 또는 둘 모두를 볼 경우 tableB에있는 해당 값을 표시해야합니다.
crm_field == 21 또는 22이면 해당 값을 배열에 추가하는 다른 쿼리를 수행합니다. 하지만 가능한 적은 코드로 이것을 수행하고 싶습니다. 따라서 join을 실험하고있었습니다. (이미 JohnFx에서 언급 한 바와 같이)
어떤 데이터베이스를 사용하고 있습니까? – JohnFx
죄송합니다. mysql을 사용하여 – magicianiam
'null'문자열에 대해 의도적으로 쿼리하고 있습니까? 아니면 실제로 null을 확인 했습니까? – JohnFx