使用 Left join sql 查询

Using Left join sql query

我正在尝试从 Table A 中检索 DBName、DBNo、DBMount、DBCountedAmount 并从 Table B 中包含 NewFormNo,所以我这样做了

Table一个

|DBName |DBNo    | DBAmount | DBCountedAmount     |
|-------|--------|----------|---------------------|
|Derek  |503456  | 2000     |     2000            |
|John   |554422  | 40000    |     4000            |

Table B

|DBName |DBNo    | DBAmount | DBCountedAmount     | FormNo|
|-------|--------|----------|---------------------|-------|
|Derek  |503456  | 2000     |     2000            |00001  |
|John   |554422  | 40000    |     4000            |00002  |

所以我这样做了,但是 return 不是我想要的行

SELECT A.DBName,A.DBNo,A.DBAmount,A.DBCountedAmount,B.FormNo FROM Table A LEFT JOIN Table B ON A.DBNo=B.DBNo AND A.DBNo= '503456'

我想找回这个

|DBName |DBNo    | DBAmount | DBCountedAmount     | FormNo|
|-------|--------|----------|---------------------|-------|
|Derek  |503456  | 2000     |     2000            |00001  |

改变这个

AND A.DBNo= '503456'

至此

WHERE A.DBNo= '503456'

另外,DBNo的类型是什么?如果它是数字,您可以删除 ''

试试这个:

SELECT A.DBName, A.DBNo, A.DBAmount, A.DBCountedAmount 
FROM Table A 
LEFT JOIN Table B ON A.DBNo=B.DBNo
WHERE A.DBNo= '503456'

根据你的问题,不需要左外连接。您可以像这样使用内部连接直接获取:

SELECT distinct a.DBname, a.DBno, a.Dbamount, a.Dbamountcount, b.FormNo 
FROM tableA a inner join tableB b 
on a.DBno = b.DBno 
and a.DBno = 503456