「java多字段笛卡尔」多字段distinct
本篇文章给大家谈谈java多字段笛卡尔,以及多字段distinct对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、多表查询(笛卡尔集)
- 2、多表查询,用JOIN连接 因为是多对一 产生了笛卡尔乘积,如何解决这个问题
- 3、java list怎么笛卡尔积
- 4、java中如何将数据库中多个字段的值存入二维数组的一个元素中
多表查询(笛卡尔集)
例如:
-- 显示雇员名、工资及所在部门的名字
select t.ename, t.sal, d.dname
from emp t, dept d
where t.deptno = d.deptno;
多表查询实际就是笛卡尔集
笛卡尔乘积:
假设集合A={a, b, c, d},集合B={0, 1, 2},则两个集合的笛卡尔积为:
{(a, 0), (a, 1), (a, 2),
(b, 0), (b, 1), (b, 2),
(c, 0), (c, 1), (c, 2),
(d, 0), (d, 1), (d, 2)
}
可见,上面的笛卡尔集在oracle中是这样表示的:每一个二元组 如(a, 0) 都相当于虚表中的一条记录,共有4 x 3=12行记录,接下来就是从这临时表中根据where条件筛选了,最后select显示想要字段。
多表查询,用JOIN连接 因为是多对一 产生了笛卡尔乘积,如何解决这个问题
以JO作为查询的关键字,输出B.DE ,那你这个SQL怎么这么写呢?
select B.DE from ptr B where B. trno in (select A.trno from ptrnq A where A.JO = ?)
这样才是以JO作为查询关键字,输出B.DE。 这样也不会出现多条记录了。
java list怎么笛卡尔积
ListString list1=new ArrayListString();
ListString list2=new ArrayListString();
ListString list3=new ArrayListString(); //用来接收笛卡尔积
list1.add("str1");
list1.add("str2");
list1.add("str3");
list2.add("aaa");
list2.add("bbb");
for(String value1 : list1)
{
for(String value2 : list2)
{
String temp=value1+","+value2;
list3.add(temp);
}
}
java中如何将数据库中多个字段的值存入二维数组的一个元素中
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
public class DataToArray {
public static void main(String[] args) throws Exception {
String url = "jdbc:mysql://localhost:3306/test";// 改成你的数据库连接
Connection conn = DriverManager.getConnection(url, "root", "fuhaiwei");// 改成你用户名密码
String sql = "select * from user";// 改成你的查询语句
PreparedStatement prestmt = conn.prepareStatement(sql);
ResultSet rs = prestmt.executeQuery();
Object[][] data = getDataArray(rs);
printArray(data);
rs.close();
prestmt.close();
conn.close();
}
private static void printArray(Object[][] data) {
for (int i = 0; i data.length; i++) {
for (int j = 0; j data[i].length; j++) {
System.out.print(data[i][j] + " ");
}
System.out.println();
}
}
private static Object[][] getDataArray(ResultSet rs) throws SQLException {
ListObject[] list = new LinkedList();
while (rs.next()) {
// 改成你的列名
Object[] objects = new Object[] { rs.getInt("id"), rs.getString("username"),
rs.getString("password") };
list.add(objects);
}
return list.toArray(new Object[0][0]);
}
}
输出效果:
关于java多字段笛卡尔和多字段distinct的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。