I have a SQL 쿼리는 다음과 같습니다.
SELECT DISTINCT
a.maxa ,
b.mahuyen ,
a.tenxa ,
b.tenhuyen ,
ISNULL(dkcd.tong, 0) AS tongdkcd
FROM phuongxa a ,
quanhuyen b
LEFT OUTER JOIN ( SELECT maxa ,
COUNT(*) AS tong
FROM khaosat
WHERE CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'
AND
'Sep 5 2011'
GROUP BY maxa
) AS dkcd ON dkcd.maxa = a.maxa
WHERE a.maxa <> '99'
AND LEFT(a.maxa, 2) = b.mahuyen
ORDER BY maxa;
그 때 나는 이 질의에서는 실행하십시오 오류가 있다.
SELECT DISTINCT
a.maxa ,
b.mahuyen ,
a.tenxa ,
b.tenhuyen
FROM phuongxa a ,
quanhuyen b
WHERE a.maxa <> '99'
AND LEFT(a.maxa, 2) = b.mahuyen
ORDER BY maxa;
및
SELECT maxa ,
COUNT(*) AS tong
FROM khaosat
WHERE CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'
AND 'Sep 5 2011'
GROUP BY maxa;
틀렸다니까 암시적입니다 믹싱 (mixing) 와의 합병을 통해 명시성 조인. 어떻게 그렇게 할 수 있는 수는 있으나 제대로 알고 있어야 합니다.
중요한건, 명시적 조인 (JOIN 키워드를 사용하여 수준들과 않는비즈니스 구현됩니까 '이') (# 39, & # 39 는, comma& 암시적입니다 우선합니다 수준들과 조인 (join 찼음을 지정되어 있는 '위치' 항).
SELECT
…
FROM a, b LEFT JOIN dkcd ON …
WHERE …
여러분은 이렇게 하지는 이를 것으로 기대하고 있다.
SELECT
…
FROM (a, b) LEFT JOIN dkcd ON …
WHERE …
즉, 'a' 와 'b' 는 테이블 조합으로의 참여됨 트리스트 테이블 '와'. # 39 의 what& 실제로 일어나고 있다.
SELECT
…
FROM a, (b LEFT JOIN dkcd ON …)
WHERE …
즉, 구체적으로 알고 있을 때 '는' b ',' 트리스트 참여됨 상대로 유일한 'b', 그 결과 'a', '이 결합된' 어디서 'join) 은 더욱 필터링됨 핵심이 되는 말이다. 이 경우 모든 참조입니다 'a' 의 '에', 'a' 는 점에서 알 수 없는 것은 잘못된 것이다. 그래서 가져오는 틀렸다니까 오류 메시지.
내가 당신이라면, 아마도 이 질의에서는 및 재작성할 할 수 있는 솔루션을 사용할 수 있습니다.
SELECT DISTINCT
a.maxa,
b.mahuyen,
a.tenxa,
b.tenhuyen,
ISNULL(dkcd.tong, 0) AS tongdkcd
FROM phuongxa a
INNER JOIN quanhuyen b ON LEFT(a.maxa, 2) = b.mahuyen
LEFT OUTER JOIN (
SELECT
maxa,
COUNT(*) AS tong
FROM khaosat
WHERE CONVERT(datetime, ngaylap, 103) BETWEEN 'Sep 1 2011' AND 'Sep 5 2011'
GROUP BY maxa
) AS dkcd ON dkcd.maxa = a.maxa
WHERE a.maxa <> '99'
ORDER BY a.maxa
이 테이블 'a' 와 'b' 는 '다음 결과는 트리스트 참여됨 먼저 참여한'. 이는 기본적으로 같은 조인 구문을 사용하여 쿼리하지 tpc. 당신, 만 중 다른 어떤 큰 차이가 있습니다. '& # 39 의' 를 '참조' 이스마사 트리스트 참가하십시오 찼음을 이제 밀어버릴꺼에요 유효함.
아마도 제대로 받을 수 있다 '는 다음과 같이 @Aaron 베르트랑 합니다 아마도' a ',' 마사 sys_memsize 특정 앨리어스입니다 '에서' ORDER BY 절.
이 경우 실제 이름이 주어진 '알리' 역할로 잘 이름 변경
예를 들어
SELECT
A.name,A.date
FROM [LoginInfo].[dbo].[TableA] as A
join
[LoginInfo].[dbo].[TableA] as B
on [LoginInfo].[dbo].[TableA].name=[LoginInfo].[dbo].[TableB].name;
이 변경
SELECT
A.name,A.date
FROM [LoginInfo].[dbo].[TableA] as A
join
[LoginInfo].[dbo].[TableA] as B
on A.name=B.name;
전 같으면 JDBC 에서 오류가 발생했습니다. 저의 모든 것을 점검됩니다 쿼리하지 멀쩡했어. 나는 켜졌음 아웃하거나 where 절에서 수감됐습니다.
where s.some_column = ?
I was 반군지역 의 was 및 인수 값이 null. 또한 같은 오류가 있는 경우 잘못된 이유는열 인터넷에 검색을 수행할 수 있는 구조를 쿼리하지 끝날 문제가 아니라, 내 경우에는 it& # 39 일은 아닙니다. 그냥 누군가를 돌아보 같은 문제에 직면할 수
어떤 방법이 주효했는가 가져다줄래요 변경 (change my where 절 붙여넣습니다 서브케리 선택 하였다.
출처:
DELETE FROM CommentTag WHERE [dbo].CommentTag.NoteId = [dbo].FetchedTagTransferData.IssueId
다음과 같이 사용된다.
DELETE FROM CommentTag WHERE [dbo].CommentTag.NoteId = (SELECT NoteId FROM FetchedTagTransferData)
USE [CTU SQL Project]
SELECT Advisors.First_Name, Advisors.Last_Name...and so on.
테이블의 필드를 사용할 수 없었던 내 오류가 있었다.
table1.field1 = >. 는 존재하지 않습니다.
table2.field1 = >. 올바른지
내 사용하기 때문에 오류가 발생했습니다.
WITH RCTE AS (
SELECT...
)
SELECT RCTE.Name, ...
FROM
RCTE INNER JOIN Customer
ON RCTE.CustomerID = Customer.ID
결합할 때 사용되는 다른 테이블.
대신 같은 결합 테이블을 볼 수 있습니다
select
....
from
dkcd
right join
a
, b
이 노력해야 합니다
난 역시 이 같은 전략을 통해 오류 및 됐지 해답이야 어려움을 겪고 있다 나는 내 대답을 하는 등 이 전략이 바로 확인하는 작업.
한 예로 슬라이드에서는 나는한다 내부 조인을 두 테이블 사이에 첫 번째 테이블에서 발생할 수 있는 두 개의 데이터 그러니까말이야 attaboy 후 왼쪽 외부 조인은 .해당 행 비어 있을 수 있습니다. 내부 및 외부 조인은 조인 결과를 얻을 수 있는 데이터 건너 테이블 너회가 함께 하는 대신, 미스 아웃해야 쉼표로 구분된 문법 테이블 간에 기본값입니다 원하는 대로 행의 참가하십시오.
use somedatabase
go
select o.operationid, o.operatingdate, p.pasid, p.name as patientname, o.operationalunitid, f.name as operasjonsprogram, o.theaterid as stueid, t.name as stuenavn, o.status as operasjonsstatus from operation o
inner join patient p on o.operationid = p.operationid
left outer join freshorganizationalunit f on f.freshorganizationalunitid = o.operationalunitid
left outer join theater t on t.theaterid = o.theaterid
where (p.Name like '%Male[0-9]%' or p.Name like '%KFemale [0-9]%')
첫 번째: 내부 조인 테이블 간에 데이터를 일치하는 것으로 할 수 있습니다. 두 번째 부분. 외부 조인은 진행하십시오 시도하시려면 읽어들이려면 data-in 다른 테이블뿐 그러나 이 않을 경우 해당 데이터 또는 외부 연결 잡을라는데 않은 결과 집합을 너회의 필터링합니다 테이블을 설정한 조건으로 일치시킵니다 의 조건자 / 조건.
만약 이 오류가 발생할 수 있는 ',' 이 '표' 를 통해 다시 업데이트하십시오 참가하십시오 오류가 발생하는 열 / 현장.
내 경우 이는 부족으로 인해 생성된 같은 오류가 있는 참가하십시오 '이' 자체를 알 수 없는 필드 (이를 안드리 abc. 아웃해야).
SELECT DISTINCT
phuongxa.maxa ,
quanhuyen.mahuyen ,
phuongxa.tenxa ,
quanhuyen.tenhuyen ,
ISNULL(dkcd.tong, 0) AS tongdkcd
FROM phuongxa ,
quanhuyen
LEFT OUTER JOIN ( SELECT khaosat.maxa ,
COUNT(*) AS tong
FROM khaosat
WHERE CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'
AND
'Sep 5 2011'
GROUP BY khaosat.maxa
) AS dkcd ON dkcd.maxa = maxa
WHERE phuongxa.maxa <> '99'
AND LEFT(phuongxa.maxa, 2) = quanhuyen.mahuyen
ORDER BY maxa;