jet/sqlbuilder/example_test.go

43 lines
1 KiB
Go
Raw Normal View History

2019-03-31 09:17:28 +02:00
// +build disabled
package sqlbuilder
import "fmt"
func Example() {
t1 := NewTable(
2019-03-09 09:52:03 +01:00
"shard1",
"parent_prefix",
IntColumn("ns_id", NotNullable),
IntColumn("hash", NotNullable),
StrColumn("prefix",
UTF8,
UTF8CaseInsensitive,
NotNullable))
t2 := NewTable(
2019-03-09 09:52:03 +01:00
"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.LEFT_JOIN(t1, Eq(ns_id1, ns_id2))
q := join.Select(ns_id2, sjid, prefix, filename).Where(
And(EqL(ns_id2, 456), In(sjid, in)))
2019-03-09 09:52:03 +01:00
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))
}