0

我有

SELECT
servisler.geo_location,
servisler.ADRES_MERKEZ,
servisler.ADRES_ILCE,
servisler.ADRES_IL,
servisler.FIRMA_UNVANI,
servisler.ADRES_ISTEL,
servisler.YETKILI_ADISOYADI,
urun_gruplari.GRUP_ADI
FROM
servisler
INNER JOIN urun_gruplari ON kullanici_cihaz.URUN_GRUP_NO= urun_gruplari.RECNO
INNER JOIN kullanici ON kullanici.SERVIS_RECNO = servisler.RECNO
INNER JOIN kullanici_cihaz ON kullanici.RECNO = kullanici_cihaz.KUL_RECNO AND kullanici_cihaz.URUN_GRUP_NO = urun_gruplari.RECNO
where kullanici.kullanici = 'MAR.EDI.003'

但它说

[Err] 1054 - Unknown column 'kullanici_cihaz.URUN_GRUP_NO' in 'on clause'

enen 虽然列退出。它的问题是什么?

架构
服务器版本:5.1.33-community-log

4

2 回答 2

2

因为kullanici.SERVIS_RECNO在加入表时不存在:servisler, urun_gruplari. kullanici加入前先加入表urun_gruplari

SELECT    servisler.geo_location,
          servisler.ADRES_MERKEZ,
          servisler.ADRES_ILCE,
          servisler.ADRES_IL,
          servisler.FIRMA_UNVANI,
          servisler.ADRES_ISTEL,
          servisler.YETKILI_ADISOYADI,
          urun_gruplari.GRUP_ADI
FROM   servisler
          INNER JOIN kullanici 
               ON kullanici.SERVIS_RECNO = servisler.RECNO
          INNER JOIN urun_gruplari 
               ON kullanici_cihaz.URUN_GRUP_NO= urun_gruplari.RECNO
          INNER JOIN kullanici_cihaz
               ON kullanici.RECNO = kullanici_cihaz.KUL_RECNO AND 
                  kullanici_cihaz.URUN_GRUP_NO = urun_gruplari.RECNO
where kullanici.kullanici = 'MAR.EDI.003'
于 2012-08-28T09:29:10.000 回答
2

我认为这是因为您在子句中使用了该kullanici_cihaz表,并且在链接该表之前使用了该表。ON

尝试重新排列您的INNER JOIN

SELECT
   servisler.geo_location,
   servisler.ADRES_MERKEZ,
   servisler.ADRES_ILCE,
   servisler.ADRES_IL,
   servisler.FIRMA_UNVANI,
   servisler.ADRES_ISTEL,
   servisler.YETKILI_ADISOYADI,
   urun_gruplari.GRUP_ADI
FROM
   servisler
INNER JOIN kullanici ON kullanici.SERVIS_RECNO = servisler.RECNO
INNER JOIN kullanici_cihaz ON kullanici.RECNO = kullanici_cihaz.KUL_RECNO 
INNER JOIN urun_gruplari ON kullanici_cihaz.URUN_GRUP_NO= urun_gruplari.RECNO
WHERE 
   kullanici.kullanici = 'MAR.EDI.003'

编辑

您还有一些“循环内连接”,我将其删除:

INNER JOIN urun_gruplari ON kullanici_cihaz.URUN_GRUP_NO= urun_gruplari.RECNO
INNER JOIN kullanici_cihaz ON kullanici.RECNO = kullanici_cihaz.KUL_RECNO AND kullanici_cihaz.URUN_GRUP_NO = urun_gruplari.RECNO
于 2012-08-28T09:29:31.337 回答