相关疑难解决方法(0)

SQL离开连接与FROM行上的多个表?

大多数SQL方言都接受以下查询:

SELECT a.foo, b.foo
FROM a, b
WHERE a.x = b.x

SELECT a.foo, b.foo
FROM a
LEFT JOIN b ON a.x = b.x
Run Code Online (Sandbox Code Playgroud)

现在很明显,当您需要外连接时,需要第二种语法.但是在进行内部连接时,为什么我更喜欢第二种语法(反之亦然)?

sql syntax join

245
推荐指数
7
解决办法
25万
查看次数

无法绑定多部分标识符

我在SO上看到过类似的错误,但我找不到解决问题的方法.我有一个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;
Run Code Online (Sandbox Code Playgroud)

当我执行此查询时,错误结果为: 无法绑定多部分标识符"a.maxa".为什么?
P/s:如果我将查询分成2个单独的查询,它运行正常.

SELECT DISTINCT
        a.maxa ,
        b.mahuyen ,
        a.tenxa ,
        b.tenhuyen …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

186
推荐指数
6
解决办法
73万
查看次数

标签 统计

sql ×2

join ×1

sql-server ×1

sql-server-2005 ×1

syntax ×1