十一、join

对于表join有如下这么几种类型 join.png

根据以上对于join的处理,这里新增了一个NeoJoiner类用于链式的拼接sql处理。以下为类Neo中的函数

public NeoJoiner join(String leftTableName, String rightTableName){}
public NeoJoiner leftJoin(String leftTableName, String rightTableName){}
public NeoJoiner rightJoin(String leftTableName, String rightTableName){}
public NeoJoiner innerJoin(String leftTableName, String rightTableName){}
public NeoJoiner outerJoin(String leftTableName, String rightTableName){}
public NeoJoiner leftJoinExceptInner(String leftTableName, String rightTableName){}
public NeoJoiner rightJoinExceptInner(String leftTableName, String rightTableName){}
public NeoJoiner outerJoinExceptInner(String leftTableName, String rightTableName){}

NeoJoiner中也有跟上面一样的一组函数,且有on函数

public NeoJoiner on(String leftColumnName, String rightColumnName){}

此外还有对数据的查询查询处理(还有更多处理):

public NeoMap one(Columns columns, NeoMap searchMap){}
public NeoMap one(Columns columns){}

public List<NeoMap> list(Columns columns, NeoMap searchMap){}
public List<NeoMap> list(Columns columns){}

public List<NeoMap> page(Columns columns, NeoMap searchMap, NeoPage neoPage) {}
public List<NeoMap> page(Columns columns, NeoPage page){}

public Integer count(Columns columns, NeoMap searchMap){}

public <T> T value(Class<T> tClass, String tableName, String columnName, NeoMap searchMap){}
public <T> T value(Class<T> tClass, String tableName, String columnName){}
public String value(String tableName, String columnName, NeoMap searchMap){}
public String value(String tableName, String columnName){}

public <T> List<T> values(Class<T> tClass, String tableName, String columnName, NeoMap searchMap){}
public <T> List<T> values(Class<T> tClass, String tableName, String columnName){}
public List<String> values(String tableName, String columnName, NeoMap searchMap){}
public List<String> values(String tableName, String columnName){}

两表join

基于以上的函数,我们这里简单列举 下简单的实例

多表join

其实多表和两表是一样的,只是在on之后又多拼接了一个,举例如下

join类型

前面简单列举了,下面我们列举下对应的一些join

  • join(在这里等价于left join)

  • left join

  • right join

  • inner join

  • outer join

  • left join except inner

  • right join except inner

  • outer join except inner(mysql 不支持)

表别名处理 在单表时候查询数据时候还用不到表别名,但是对于多表join的时候,如果里面有表之间相互别名的时候,就需要用到别名了,那么别名怎么使用呢,这里涉及了这样的方式,直接将表名设置成“tablename as t1”,然后将这个直接作为表名进行查询即可。

Last updated

Was this helpful?