| 173 | } |
| 174 | |
| 175 | func TestSelectBuilderNestedSelectJoin(t *testing.T) { |
| 176 | |
| 177 | expectedSql := "SELECT * FROM bar JOIN ( SELECT * FROM baz WHERE foo = ? ) r ON bar.foo = r.foo" |
| 178 | expectedArgs := []interface{}{42} |
| 179 | |
| 180 | nestedSelect := Select("*").From("baz").Where("foo = ?", 42) |
| 181 | |
| 182 | b := Select("*").From("bar").JoinClause(nestedSelect.Prefix("JOIN (").Suffix(") r ON bar.foo = r.foo")) |
| 183 | |
| 184 | sql, args, err := b.ToSql() |
| 185 | assert.NoError(t, err) |
| 186 | |
| 187 | assert.Equal(t, expectedSql, sql) |
| 188 | assert.Equal(t, args, expectedArgs) |
| 189 | } |
| 190 | |
| 191 | func TestSelectWithOptions(t *testing.T) { |
| 192 | sql, _, err := Select("*").From("foo").Distinct().Options("SQL_NO_CACHE").ToSql() |