繁体   English   中英

最佳SQL性能选项

[英]Best SQL Option for Performance

我目前需要执行一个数据库查询,其中涉及来自三个单独表的数据。 base,member,sell_transaction

表如下所示

base_id(PK)名称状态

成员表如下所示

id(PK)last_name用户名电子邮件first_name

sell_transaction表具有以下架构

transaction_id(PK)城市州base_id日期ID agentId

注意-这些表包含更多列,但是它们无关紧要,因此我将节省时间并且不将其写出。

我正在处理涉及所有这些表中数据的事务查询。 我需要在这三个表中填充的TransactionItem中返回此数据

作为Pojo的TransactionItem如下所示

public TransactionItem(){

    private String firstName;
    private String lastName;
    private String email;
    private String baseName;
    private String city;
    private String state;
    private Date date;

    public String getFirstName(){
              return firstName;
    }
    public String setFirstName(String firstName){
              this.firstName = firstName;
    }
    ...
    ...///The rest of the getters and setters
    ...
    ...


}



目前,我正在从每个表中进行三个单独的选择,这比我想要的时间更长。 我会想到有一种方法可以使用联接或嵌套的select语句等。

数据和条件及其对应的表格如下

我需要...

成员的 first_name,last_name,id

我需要

名称 ,并从基地 状态sell_transaction BASE_ID等于从基地 BASE_ID

同样,我还需要更多,但是将它们命名是多余的。这个想法应该仍然很明确,我需要查询彼此依赖的数据。 我不确定性能最佳选择是什么。 遍历的数据量最终可能非常大或非常小(不确定是否重要)。

select b.name,b.state, s.city,s.state,s.duty,s.branch,s.date, m.first_name,m.last_name,m.email,m.phone,m.id,s.transaction_id from bases as b, sell_transaction as s, member as m where s.agentId is null and s.username = m.username and b.base_id = s.duty
select first_name, last_name, member.id member_id, bases.name, bases.state
from bases, sell_transaction, member
where sell_transaction.base_id = bases.base_id
and member.id = sell_transaction.agentId;

我在这里agentID猜测 agentID是来自sell_transactionmember的连接,但不清楚或不明显,而且可能不正确(除非您弄清楚数据模型)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM