jet/sqlbuilder/example_test.go
2019-04-30 11:30:59 +02:00

40 lines
1,005 B
Go

package sqlbuilder
import "fmt"
func Example() {
t1 := NewTable(
"shard1",
"parent_prefix",
IntColumn("ns_id", NotNullable),
IntColumn("hash", NotNullable),
StrColumn("prefix",
UTF8,
UTF8CaseInsensitive,
NotNullable))
t2 := NewTable(
"shard1",
"sfj",
IntColumn("ns_id", NotNullable),
IntColumn("sjid", NotNullable),
StrColumn("filename",
UTF8,
UTF8CaseInsensitive,
NotNullable))
ns_id1 := t1.C("ns_id")
prefix := t1.C("prefix")
ns_id2 := t2.C("ns_id")
sjid := t2.C("sjid")
filename := t2.C("filename")
in := []int32{1, 2, 3}
join := t2.LeftJoinOn(t1, Eq(ns_id1, ns_id2))
q := join.Select(ns_id2, sjid, prefix, filename).Where(
And(EqL(ns_id2, 456), In(sjid, in)))
text, _ := q.String()
fmt.Println(text)
// Output:
// SELECT `sfj`.`ns_id`,`sfj`.`sjid`,`parent_prefix`.`prefix`,`sfj`.`filename` FROM `shard1`.`sfj` LEFT JOIN `shard1`.`parent_prefix` ON `parent_prefix`.`ns_id`=`sfj`.`ns_id` WHERE (`sfj`.`ns_id`=456 AND `sfj`.`sjid` IN (1,2,3))
}