我需要通过ID连接两个表,其中一个ID存储为数字(即12345),另一个ID存储为管道分隔的字符串(即12345 | 12346 | 12347)。有没有快速的方式加入这两个?谢谢!
**如果数字ID(12345)在数字字符串中(12345 | 12346 | 12347),我想我应该说加入。理论上,这个例子将加入,因为12345在管道分隔的字符串中。
答案 0 :(得分:1)
这适用于Hive
package main
import (
"github.com/davecgh/go-spew/spew"
"gopkg.in/yaml.v2"
"io/ioutil"
)
type Config struct {
Hosts string `yaml:hosts`
Gather_facts string `yaml:gatherfacts`
Remote_user string `yaml:remoteuser`
Name string `yaml:names`
Tasks []struct {
Name string `yaml:name`
Apt_key struct {
Url string `yaml:url`
State string `yaml:url`
} `yaml:apt_key`
Become string `yaml:become`
Command string `yaml:command`
}
}
func main() {
file, err := ioutil.ReadFile("/home/bane/Desktop/go/a.yml")
if err != nil {
panic(err)
}
var config Config
yaml.Unmarshal(file, &config)
// spew.Dump(config)
spew.Dump(config.Tasks[0])
spew.Dump(config.Tasks[1])
}
答案 1 :(得分:0)
我不清楚你是指SQL还是HiveQL。
有没有快速的方式加入这两个?
不,不是真的。
您的数据库架构违反了第一范式。加入这些表格会很慢且容易出错。
对于DB-agnostic,尝试:
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2
ON t2.id LIKE ('%' + CAST(t1.id as varchar) + '%')