第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

無(wú)法綁定多部分標(biāo)識(shí)符

無(wú)法綁定多部分標(biāo)識(shí)符

守候你守候我 2019-08-02 14:35:24
無(wú)法綁定多部分標(biāo)識(shí)符我在SO上看到過(guò)類似的錯(cuò)誤,但我找不到解決問(wèn)題的方法。我有一個(gè)SQL查詢,如:SELECT DISTINCT         a.maxa ,         b.mahuyen ,         a.tenxa ,         b.tenhuyen ,         ISNULL(dkcd.tong, 0) AS tongdkcdFROM    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.maxaWHERE   a.maxa <> '99'         AND LEFT(a.maxa, 2) = b.mahuyenORDER BY maxa;當(dāng)我執(zhí)行此查詢時(shí),錯(cuò)誤結(jié)果為: 無(wú)法綁定多部分標(biāo)識(shí)符“a.maxa”。為什么? P / s:如果我將查詢分成2個(gè)單獨(dú)的查詢,它運(yùn)行正常。SELECT DISTINCT         a.maxa ,         b.mahuyen ,         a.tenxa ,         b.tenhuyenFROM    phuongxa a ,         quanhuyen bWHERE   a.maxa <> '99'         AND LEFT(a.maxa, 2) = b.mahuyenORDER BY maxa;和SELECT  maxa ,         COUNT(*) AS tongFROM    khaosatWHERE   CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'                                         AND     'Sep 5 2011'GROUP BY maxa;
查看完整描述

3 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊

您正在將隱式連接與顯式連接混合使用。這是允許的,但你需要知道如何正確地做到這一點(diǎn)。

問(wèn)題是,顯式連接(使用JOIN關(guān)鍵字實(shí)現(xiàn)的連接)優(yōu)先于隱式連接('逗號(hào)'連接,其中連接條件在WHERE子句中指定)。

以下是您的查詢大綱:

SELECT
  …FROM a, b LEFT JOIN dkcd ON …WHERE …

您可能希望它的行為如下:

SELECT
  …FROM (a, b) LEFT JOIN dkcd ON …WHERE …

即,表的組合ab接合用表dkcd。事實(shí)上,正在發(fā)生的事情是

SELECT
  …FROM a, (b LEFT JOIN dkcd ON …)WHERE …

也就是說(shuō),正如您可能已經(jīng)理解的那樣,只有dkcd特定的反對(duì)b和聯(lián)接b,然后結(jié)合的結(jié)果a與該WHERE子句進(jìn)一步結(jié)合并進(jìn)一步過(guò)濾。在這種情況下,a對(duì)該ON子句中的任何引用都是無(wú)效的,此時(shí)a是未知的。這就是您收到錯(cuò)誤消息的原因。

如果我是你,我可能會(huì)嘗試重寫這個(gè)查詢,一個(gè)可能的解決方案可能是:

SELECT DISTINCT
  a.maxa,
  b.mahuyen,
  a.tenxa,
  b.tenhuyen,
  ISNULL(dkcd.tong, 0) AS tongdkcdFROM 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.maxaWHERE a.maxa <> '99'ORDER BY a.maxa

這里的表格a,并b首先連接,然后將結(jié)果接合dkcd?;旧?,這是相同的查詢是你的,只是使用不同的語(yǔ)法的連接,這使得有很大的差別之一:參考a.maxadkcd的連接條件是現(xiàn)在絕對(duì)有效。


查看完整回答
反對(duì) 回復(fù) 2019-08-02
?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

有時(shí),當(dāng)您以錯(cuò)誤的方式在查詢中使用架構(gòu)(dbo)時(shí)會(huì)發(fā)生此錯(cuò)誤。

例如,如果你寫:

select dbo.prd.namefrom dbo.product prd

你會(huì)得到錯(cuò)誤。

在這種情況下,將其更改為:

select prd.namefrom dbo.product prd


查看完整回答
反對(duì) 回復(fù) 2019-08-02
  • 3 回答
  • 0 關(guān)注
  • 679 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)