github.com/sharovik/devbot@v1.0.1-0.20240308094637-4a0387c40516/documentation/query-builder.md (about)

     1  # The query builder
     2  Here you can find the instructions how to use the query builder of the internal dictionary.
     3  
     4  ## Usage
     5  Here you can find the basic example of the query builder usage:
     6  
     7  ```go
     8  c := container.C.Dictionary.GetNewClient()
     9  
    10  q := new(clients.Query).
    11      Select([]interface{}{"events.id", "events.alias", "questions.question"}).
    12      From(&database_dto.EventModel).
    13      Join(query.Join{
    14          Target: query.Reference{
    15              Table: database_dto.ScenariosModel.GetTableName(),
    16              Key:   "event_id",
    17          },
    18          With: query.Reference{
    19              Table: database_dto.EventModel.GetTableName(),
    20              Key:   database_dto.EventModel.GetPrimaryKey().Name,
    21          },
    22          Condition: "=",
    23      }).
    24      Join(query.Join{
    25          Target: query.Reference{
    26              Table: database_dto.QuestionsModel.GetTableName(),
    27              Key:   "scenario_id",
    28          },
    29          With: query.Reference{
    30              Table: database_dto.ScenariosModel.GetTableName(),
    31              Key:   database_dto.ScenariosModel.GetPrimaryKey().Name,
    32          },
    33          Condition: "=",
    34      }).
    35      Where(query.Where{
    36          First:    "questions.question",
    37          Operator: "<>",
    38          Second:   "''",
    39      })
    40  res, err := c.Execute(q)
    41  if err != nil {
    42      //do something with error
    43  }
    44  ```
    45  The example of usage in the event you can find here: [events/eventslist](../events/eventslist)`.
    46  
    47  Another examples of the database query-builder and it's supported functionality [you can find here](https://github.com/sharovik/orm).