「java多字段笛卡尔」多字段distinct

博主:adminadmin 2023-03-21 23:47:08 647

本篇文章给大家谈谈java多字段笛卡尔,以及多字段distinct对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

多表查询(笛卡尔集)

例如:

-- 显示雇员名、工资及所在部门的名字

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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。