added work query example
This commit is contained in:
parent
36a160e1c7
commit
d69c0a5769
101
demo/work.cpp
101
demo/work.cpp
|
|
@ -175,7 +175,7 @@ int main() {
|
|||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::failReasonSqlAttributeId() ) )
|
||||
// .arg( LoginHistory::staticSqlMetaInfo().columnName( LoginHistory::Attributes::idAttributeId() ) );
|
||||
|
||||
const auto q = query::query::select({LOGIN_HISTORY.client, query::max(LOGIN_HISTORY.login_time).as( "lastSuccessfulLogin" ) } )
|
||||
const auto q = query::query::select({LOGIN_HISTORY.client, query::maximum(LOGIN_HISTORY.login_time).as( "lastSuccessfulLogin" ) } )
|
||||
.from( LOGIN_HISTORY )
|
||||
.where( LOGIN_HISTORY.fail_reason == _ )
|
||||
.group_by( LOGIN_HISTORY.client );
|
||||
|
|
@ -217,6 +217,105 @@ int main() {
|
|||
// query.addBindValue( LoginHistory::FailReason::UnknownUserName );
|
||||
// query.addBindValue( columnFilterValue );
|
||||
|
||||
|
||||
// const auto temporaryTable = status.addChildExc( fillTemporaryTable( idsInsidePayload ) );
|
||||
//
|
||||
// const auto& jobSqlMetaInfo = Job::staticSqlMetaInfo();
|
||||
// const auto& payloadSqlMetaInfo = Payload::staticSqlMetaInfo();
|
||||
// const auto& idPayloadSqlMetaInfo = IdPayload::staticSqlMetaInfo();
|
||||
//
|
||||
// auto filter = std::make_unique<SqlTools::GenericFilter>( new SqlTools::AttributeDefaultFilter( jobSqlMetaInfo,
|
||||
// Job::Attributes::idAttributeId(),
|
||||
// Job::Attributes::idAttributeId(),
|
||||
// Job::Attributes::typeAttributeId(),
|
||||
// SqlTools::AttributeDefaultFilter::Operation::Equal,
|
||||
// jobName ),
|
||||
// new SqlTools::InFilter( payloadSqlMetaInfo.tableName(),
|
||||
// jobSqlMetaInfo.columnName( Job::Attributes::payloadAttributeId() ),
|
||||
// payloadSqlMetaInfo.columnName( Payload::Attributes::idAttributeId() ),
|
||||
// new SqlTools::InFilter( idPayloadSqlMetaInfo.tableName(),
|
||||
// payloadSqlMetaInfo.columnName( Payload::Attributes::idAttributeId() ),
|
||||
// idPayloadSqlMetaInfo.columnName( IdPayload::Attributes::idAttributeId() ),
|
||||
// new SqlTools::TemporaryInFilter( temporaryTable,
|
||||
// idPayloadSqlMetaInfo.columnName( IdPayload::Attributes::payloadIdAttributeId() ),
|
||||
// lookUpColName() ) ) ),
|
||||
// SqlTools::GenericFilter::Operation::And );
|
||||
//
|
||||
// if ( !jobStates.empty() ) {
|
||||
// auto it = jobStates.begin();
|
||||
// std::unique_ptr<SqlTools::GenericFilter> criteria = std::make_unique<SqlTools::AttributeDefaultFilter>( jobSqlMetaInfo,
|
||||
// Job::Attributes::idAttributeId(),
|
||||
// Job::Attributes::idAttributeId(),
|
||||
// Job::Attributes::stateSqlAttributeId(),
|
||||
// SqlTools::AttributeDefaultFilter::Operation::Equal,
|
||||
// *it++ );
|
||||
// for ( ; it != jobStates.end(); ++it ) {
|
||||
// criteria = std::make_unique<SqlTools::GenericFilter>( new SqlTools::AttributeDefaultFilter( jobSqlMetaInfo,
|
||||
// Job::Attributes::idAttributeId(),
|
||||
// Job::Attributes::idAttributeId(),
|
||||
// Job::Attributes::stateSqlAttributeId(),
|
||||
// SqlTools::AttributeDefaultFilter::Operation::Equal,
|
||||
// *it ),
|
||||
// criteria.release(),
|
||||
// SqlTools::GenericFilter::Operation::Or );
|
||||
// }
|
||||
//
|
||||
// filter = std::make_unique<SqlTools::GenericFilter>( criteria.release(), filter.release(), SqlTools::GenericFilter::Operation::And );
|
||||
// }
|
||||
//
|
||||
// const auto ids = status.addChildExc( this->ids( SqlManager::jobFilter, filter.get() ) );
|
||||
// SELECT
|
||||
// ID
|
||||
// FROM
|
||||
// NEWS_JOBS
|
||||
// WHERE
|
||||
// NEWS_JOBS.ID > ?
|
||||
// AND (NEWS_JOBS.TYPE = ?
|
||||
// AND ( NEWS_JOBS.PAYLOAD IN (
|
||||
// SELECT
|
||||
// ID
|
||||
// FROM
|
||||
// NEWS_PAYLOADS
|
||||
// WHERE
|
||||
// NEWS_PAYLOADS.ID IN (
|
||||
// SELECT
|
||||
// ID
|
||||
// FROM
|
||||
// NEWS_ID_PAYLOADS
|
||||
// WHERE
|
||||
// NEWS_ID_PAYLOADS.PAYLOAD_ID IN (SELECT ID FROM NEWS_TMP_3499274F12B644179DBD25BB60C48529)
|
||||
// )
|
||||
// )
|
||||
// )
|
||||
// )
|
||||
|
||||
const auto stmt4 = query::query::select({JOB.id})
|
||||
.from(JOB)
|
||||
.where( JOB.id > _ && JOB.name == _ && in( JOB.payload, query::query::select({PAYLOAD.id}).from(PAYLOAD).where(
|
||||
in( PAYLOAD.id, query::query::select({ID_PAYLOAD.id}).from(ID_PAYLOAD).where(
|
||||
in( ID_PAYLOAD.id, query::query::select({temp_id_col}).from(temporary))
|
||||
) ) ) ) )
|
||||
.str( conn->dialect() );
|
||||
|
||||
// SELECT DISTINCT nj.ID
|
||||
// FROM NEWS_JOBS nj
|
||||
// JOIN NEWS_PAYLOADS np
|
||||
// ON nj.PAYLOAD = np.ID
|
||||
// JOIN NEWS_ID_PAYLOADS nip
|
||||
// ON np.ID = nip.ID
|
||||
// JOIN NEWS_TMP_3499274F12B644179DBD25BB60C48529 tmp
|
||||
// ON nip.PAYLOAD_ID = tmp.ID
|
||||
// WHERE nj.ID > ?
|
||||
// AND nj.TYPE = ?;
|
||||
|
||||
const auto stmt5 = query::query::select({JOB.id})
|
||||
.from(JOB)
|
||||
.join_left(PAYLOAD).on(JOB.payload == PAYLOAD.id)
|
||||
.join_left(ID_PAYLOAD).on(PAYLOAD.id == ID_PAYLOAD.id)
|
||||
.join_left(temporary).on(ID_PAYLOAD.id == temp_id_col)
|
||||
.where(JOB.id > _ && JOB.name == _)
|
||||
.str(conn->dialect());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue