id 필드로 두 개 이상의 테이블을 만드는 것이 더 나은 쿼리입니까? 하나의 쿼리 또는 많은 select 문에서 하나의 조인을 사용합니까?DB에서 정보를 얻는 가장 좋은 방법은 무엇입니까?
런타임 최적화 솔루션을 얻고 싶습니다. 예를 들어
:
내가 외래 키 필드와 같은 포함 "작업"테이블이 있습니다 (statustasks 테이블) statustask을, (taskurgency 테이블) taskurgency을 whate는 "작업을 얻을 수있는 가장 좋은 방법입니다 "목록 개체 양식 DB :
String sql = "SELECT * FROM tasks "
+ "INNER JOIN statustask_in_language ON tasks.status=statustask_in_language.statustask_id "
+ "INNER JOIN statustasks ON tasks.status=statustasks.id "
+ "INNER JOIN taskurgency_in_language ON tasks.urgency=taskurgency_in_language.taskurgency_id "
+ "INNER JOIN taskurgency ON tasks.urgency=taskurgency.id ";
List<task> listUsers = jdbcTemplate.query(sql, new RowMapper<task>() {
@Override
public task mapRow(ResultSet rs, int rowNum) throws SQLException {
task t = new task();
tabelsTemplate status=new tabelsTemplate();
tabelsTemplate urgency=new tabelsTemplate();
t.setId(rs.getString("id"));
t.setDate(rs.getTimestamp("date"));
t.setTargetDate(rs.getTimestamp("targetDate"));
t.setSubject(rs.getString("subject"));
t.setDescription(rs.getString("description"));
t.setAdminId(rs.getString("adminId"));
t.setOpenedBy(rs.getString("openedBy"));
status.setId(rs.getString("status"));
status.setInCurrentLanguage(rs.getString("statustask_in_language.description"));
status.setDescription(rs.getString("desc"));
t.setStatusObj(status);
urgency.setId(rs.getString("urgency"));
urgency.setInCurrentLanguage(rs.getString("taskurgency_in_language.description"));
urgency.setDescription(rs.getString("descUrgency"));
t.setUrgencyObj(urgency);
return t;
또는의 사람이 가입 선택 사용에
조인 각 외래 키에 대해 개체를 설정하는 데 필요한 정보 참고 : Task 개체에서 외래 키는 개체 (ID가 아님)입니다.
감사합니다.
MySql <> SQL Server .... –
? 그것의 의미가 무엇입니까? – user6319790
MySql은 SQL Server가 아닙니다. 그것들은 두 가지 다른 제품입니다. –