oracle sql 多表查询

我这个sql 有什么问题 多表查询 条件是表1的APPLY_NO 等于表2的APPLY_NO 然后取得一些数据

               SELECT 
                    APPLY_NO
                FROM 
                    T_APPLY_INFO T1
                LEFT JOIN
                    T_SDS_UPD_APPLY_INFO T2
                ON
                    T1.APPLY_NO = T2.APPLY_NO
                WHERE  APPLY_NO = :applyNo

你的两张表都有同名字段APPLY_NO,sql执行会报
ERROR 1052 (23000): Column 'APPLY_NO' in field list is ambiguous,数据库1052
MySQL查询的时候出现此错误提示多半是因为:
⭐️1.多表查询的时候,表同时出现了相同的列名,而在查询条件 WHERE 后面却没有指定是哪个表。
⭐️2.查询结果里面有两个相同的列名,而没有指定是哪个表。
避免此1052错误的办法就是加别名
我给你改了一下,你看看:



SELECT 
                    T1.APPLY_NO
                FROM 
                    T_APPLY_INFO T1
                LEFT JOIN
                    T_SDS_UPD_APPLY_INFO T2
                ON
                    T1.APPLY_NO = T2.APPLY_NO
                WHERE   T1.APPLY_NO = :applyNo

您的采纳就是对我最大的动力,谢谢!!!

img

你T1和T2里都有APPLY_NO ,你不指定T1.APPLY_NO 还是T2.APPLY_NO ,这语法就出错了呀
sql不知道你到底要按哪一列进行筛选
前面的select APPLY_NO和后面的where APPLY_NO都要带上表名