//which is better ? QueryResult* result = CharacterDatabase.PQuery( "SELECT " "`character`.`data`, " //0 "`character`.`name`, " //1 "`character`.`position_x`, " //2 "`character`.`position_y`, " //3 "`character`.`position_z`, " //4 "`character`.`map`, " //5 "`character`.`totaltime`, " //6 "`character`.`leveltime`, " //7 "`character`.`at_login`," //7 "`character_pet`.`entry`," //9 "`character_pet`.`modelid`," //10 "`character_pet`.`level` " //11 "FROM `character` " "LEFT JOIN `character_pet` " "ON `character`.`guid` = `character_pet`.`owner` " "AND `character_pet`.`slot`='0'" "WHERE `character`.`account` = '%u' " "ORDER BY `character`.`guid`", m_acc_id); //or .... void WorldSession::HandleCharEnumOpcode( WorldPacket & /*recv_data*/ ) { /// get all the data necesary for loading all characters (along with their pets) on the account CharacterDatabase.AsyncPQuery(&chrHandler, &CharacterHandler::HandleCharEnumCallback, GetAccountId(), // 0 1 2 3 4 5 6 7 8 "SELECT `character`.`data`, `character`.`name`, `character`.`position_x`, `character`.`position_y`, `character`.`position_z`, `character`.`map`, `character`.`totaltime`, `character`.`leveltime`, `character`.`at_login`," // 9 10 11 "`character_pet`.`entry`,`character_pet`.`modelid`,`character_pet`.`level`" "FROM `character` LEFT JOIN `character_pet` ON `character`.`guid`=`character_pet`.`owner` AND `character_pet`.`slot`='0'" "WHERE `character`.`account` = '%u' ORDER BY `character`.`guid`", GetAccountId()); }