0

美好的一天我想问一下我的 SQL 命令是否有问题?我遇到的错误是#1054 - Unknown column 'imaster_tbl.id' in 'field list'

我想这是因为我't1'imaster_tbl after the FROM keyword

你能帮我解决这个问题吗..这是我的SQL命令:

    SELECT imaster_tbl.id, imaster_tbl.die_name, imaster_tbl.part_name,
imaster_tbl.drawing_number, imaster_tbl.drawing_part_number,
imaster_tbl.sub_letter,imaster_tbl.specs, imaster_tbl.file_path,
idrawing_type_tbl.drawing_type, idie_type_tbl.die_type, irevision_tbl.revision,
irelay_type_tbl.relay_type FROM imaster_tbl t1
LEFT JOIN idrawing_type_tbl ON imaster_tbl.drawing_type_id=idrawing_type_tbl.drawing_type_id
LEFT JOIN idie_type_tbl ON imaster_tbl.die_type_id = idie_type_tbl.die_type_id
LEFT JOIN irelay_type_tbl ON imaster_tbl.relay_type_id=irelay_type_tbl.relay_type_id 
LEFT JOIN irevision_tbl ON imaster_tbl.revision_id = irevision_tbl.revision_id 
WHERE revision = (SELECT MAX(revision) FROM imaster_tbl t2 WHERE t2.drawing_part_number = t1.drawing_part_number)

但是这个对我有用,没有左连接。

select * from table t1 where revision = (select max(revision) from table t2 where t2.filename = t1.filename)

多谢。

4

2 回答 2

1

该错误表明服务器找不到特定字段。很难说该字段是否真的存在,因为您没有发布表定义。但假设它确实存在,您只需在选择部分查询时将 imaster_tbl 替换为 t1 即可。当您在 FROM 部分中编写“imaster_tbl t1”时,您正在创建该表的别名,并且需要使用该别名来引用该表中的字段。别名在您希望代码更易读、创建临时表或多次运行同一个表时非常有用,并且需要确定它们的连接方式。

我在下面更新了你的 SQL

SELECT
  t1.id,
  t1.die_name,
  t1.part_name,
  t1.drawing_number,
  t1.drawing_part_number,
  t1.sub_letter,
  t1.specs,
  t1.file_path,
  idrawing_type_tbl.drawing_type,
  idie_type_tbl.die_type,
  irevision_tbl.revision,
  irelay_type_tbl.relay_type
FROM
  imaster_tbl t1
  LEFT JOIN idrawing_type_tbl ON
    master_tbl.drawing_type_id=idrawing_type_tbl.drawing_type_id
  LEFT JOIN idie_type_tbl ON
    imaster_tbl.die_type_id = idie_type_tbl.die_type_id
  LEFT JOIN irelay_type_tbl ON
    imaster_tbl.relay_type_id=irelay_type_tbl.relay_type_id 
  LEFT JOIN irevision_tbl ON
    imaster_tbl.revision_id = irevision_tbl.revision_id 
WHERE
  revision = (
    SELECT
      MAX(revision)
    FROM
      imaster_tbl t2
    WHERE
      t2.drawing_part_number = t1.drawing_part_number
  )
于 2013-06-13T08:31:30.297 回答
1

在您的条款中,您已经为asFROM定义了别名,并且在您用来引用此表/视图的查询中。声明别名后,您应该使用别名。t1imaster_tblFROM imaster_tbl t1imaster_tbl

于 2013-06-13T08:15:30.910 回答