@@ -42,14 +42,15 @@ private void searchSubSelect(String parent, PlainSelect plainSelect) {
4242 // FROM 项是表
4343 if (fromItem instanceof Table ) {
4444 this .appendTableAlias (fromItem );
45- this .appendColumnAlias (parent , plainSelect .getSelectItems ());
45+ Table table = (Table ) fromItem ;
46+ this .appendColumnAlias (parent , table .getName (), plainSelect .getSelectItems ());
4647 }
4748
4849
4950 // FROM是子查询
5051 if (fromItem instanceof Select ) {
5152 PlainSelect subPlainSelect = ((Select ) fromItem ).getPlainSelect ();
52- this .appendColumnAlias (parent , plainSelect .getSelectItems ());
53+ this .appendColumnAlias (parent , null , plainSelect .getSelectItems ());
5354 parent = fromItem .getAlias ().getName ();
5455 this .searchSubSelect (parent , subPlainSelect );
5556 }
@@ -60,14 +61,15 @@ private void searchSubSelect(String parent, PlainSelect plainSelect) {
6061 if (join .getRightItem () instanceof Select ) {
6162 FromItem currentItem = join .getRightItem ();
6263 PlainSelect subPlainSelect = ((Select ) currentItem ).getPlainSelect ();
63- this .appendColumnAlias (parent , plainSelect .getSelectItems ());
64+ this .appendColumnAlias (parent , null , plainSelect .getSelectItems ());
6465 parent = currentItem .getAlias ().getName ();
6566 this .searchSubSelect (parent , subPlainSelect );
6667 }
6768 if (join .getRightItem () instanceof Table ) {
6869 FromItem currentItem = join .getRightItem ();
6970 this .appendTableAlias (currentItem );
70- this .appendColumnAlias (parent , plainSelect .getSelectItems ());
71+ Table table = (Table ) currentItem ;
72+ this .appendColumnAlias (parent , table .getName (), plainSelect .getSelectItems ());
7173 }
7274 }
7375 }
@@ -82,7 +84,7 @@ private void searchSubSelect(String parent, PlainSelect plainSelect) {
8284 private void appendTableAlias (FromItem fromItem ) {
8385 Table table = (Table ) fromItem ;
8486 Alias alias = table .getAlias ();
85- String aliasName = alias != null ? alias .getName (): table .getName ();
87+ String aliasName = alias != null ? alias .getName () : table .getName ();
8688 aliasContext .addTable (aliasName , table .getName ());
8789 }
8890
@@ -93,12 +95,14 @@ private void appendTableAlias(FromItem fromItem) {
9395 * @param parent 父表别名
9496 * @param selectItems 列
9597 */
96- private void appendColumnAlias (String parent , List <SelectItem <?>> selectItems ) {
98+ private void appendColumnAlias (String parent , String tableName , List <SelectItem <?>> selectItems ) {
9799 if (selectItems != null ) {
98100 for (SelectItem <?> selectItem : selectItems ) {
99101 if (selectItem .getExpression () instanceof Column ) {
100102 Column column = (Column ) selectItem .getExpression ();
101- String tableName = column .getTable ().getName ();
103+ if (column .getTable () != null ) {
104+ tableName = column .getTable ().getName ();
105+ }
102106 String columnName = column .getColumnName ();
103107 Alias columnAlias = selectItem .getAlias ();
104108 String aliasName = columnAlias != null ? selectItem .getAlias ().getName () : columnName ;
0 commit comments