美好的一天我想问一下我的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)
但这个适用于我,没有LEFT JOIN。
select * from table t1 where revision = (select max(revision) from table t2 where t2.filename = t1.filename)
非常感谢。
答案 0 :(得分:1)
在您的FROM
子句中,您已将t1
的别名imaster_tbl
定义为FROM imaster_tbl t1
,并在您使用imaster_tbl
的查询中引用此表/视图。声明别名后,应使用别名。
答案 1 :(得分:1)
错误表明服务器无法找到特定字段。如果该字段确实存在,则有点难以说明,因为您不发布表定义。但是,它确实存在,您只需要在选择部分查询时用t1替换imaster_tbl。 当您在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
)