Как я могу исправить MySQL запрос, чтобы решить ошибку «Неизвестный столбец ... в предложении On»? - PullRequest
0 голосов
/ 17 февраля 2012

Может кто-нибудь помочь исправить этот запрос? Я попробовал практически все, что мог придумать, но безуспешно.

У меня есть запрос MySQL ниже, и он выдает ошибку ниже

ОШИБКА: Неизвестный столбец 'SR.sales_rec_id' в 'предложении'

QUERY:

SELECT 
  SYSKEY.cri_sr_id,
  SR.sales_rec_id,
  SYSKEY.adnum,
  charge,
  SYSKEY.cancelsale,
  paymentdue,
  merchant,
  paymentnum,
  authorization as authcode,
  CONCAT(lastname,', ',firstname,' ',middleinitial) as customer, 
  CONCAT(replname,', ',repfname) as repname,    
FROM CRI_SR_KEYS as SYSKEY
  INNER JOIN SALES_PENDING as SPEND on SPEND.sales_rec_id=SR.sales_rec_id
  INNER JOIN SALES_RECORD as SR on SR.cri_sr_id=SYSKEY.cri_sr_id 
  LEFT JOIN CLIENT_INFO as CI on CI.client_id = SYSKEY.clientid 
  LEFT JOIN SALES_REPS as REP on SR.rep_id=REP.repid    
WHERE SPEND.authorization NOT LIKE '000000' AND paymentdue LIKE CURDATE() 
ORDER BY adnum ASC LIMIT 0,5000

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Измените порядок ваших объединений, чтобы псевдоним SR использовался до того, как вы попытаетесь его использовать:

SELECT 
  SYSKEY.cri_sr_id,SR.sales_rec_id,
  SYSKEY.adnum,charge,
  SYSKEY.cancelsale,paymentdue,merchant,paymentnum,authorization as authcode,
  CONCAT(lastname,', ',firstname,' ',middleinitial) as customer, 
  CONCAT(replname,', ',repfname) as repname    
FROM CRI_SR_KEYS as SYSKEY
  INNER JOIN SALES_RECORD as SR on SR.cri_sr_id=SYSKEY.cri_sr_id 
  INNER JOIN SALES_PENDING as SPEND on SPEND.sales_rec_id=SR.sales_rec_id
  LEFT JOIN CLIENT_INFO as CI on CI.client_id = SYSKEY.clientid 
  LEFT JOIN SALES_REPS as REP on SR.rep_id=REP.repid    
WHERE SPEND.authorization NOT LIKE '000000' AND paymentdue LIKE CURDATE() 
ORDER BY adnum ASC LIMIT 0,5000

В разделе SELECT также есть блочная запятая после repname, но это можетопечатка.

1 голос
/ 17 февраля 2012

Если столбец SALES_RECORD.sales_rec_id действительно существует, измените порядок ваших JOIN утверждений:

FROM CRI_SR_KEYS as SYSKEY
  /* Move this above SALES_PENDING to SR */
  INNER JOIN SALES_RECORD as SR on SR.cri_sr_id=SYSKEY.cri_sr_id 
  INNER JOIN SALES_PENDING as SPEND on SPEND.sales_rec_id=SR.sales_rec_id
  LEFT JOIN CLIENT_INFO as CI on CI.client_id = SYSKEY.clientid 
  LEFT JOIN SALES_REPS as REP on SR.rep_id=REP.repid    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...