我正在使用MySQL。我试图建立一些东西,却找不到解决问题的办法。根据多个标准选择数据(cloest值)
我从lookup
表中选择一个基于my
表的值,如下例所示。
选择标准:
my.id<>l.id
和my.route1=l.route1
和my.route2=l.route2
和my.utc=l.utc
其中my.stime is closest or same as l.stime
前)my.id=2
的山坳应该得到因为my.id<>l.id
的l.id=1, l.etime=7777
,其余的都是一样的。
ex)my,id=5
的col有选项l.id=3, l.etime=9999
和l.id=4, l.etime=7979
自my.id<>l.id, my.route=l.route, my.utc=l.utc
。然而,由于my.stime=2220 is closer to l.stime=2222
将比l.stime=3333
,l.id=3, l.etime=9999
将被选中。
ex)my,id=6
的示例是如果“最接近”是相同的,则选择任一值。
ex)my,id=7
的列示例是在条件未满足时返回NULL。
Table: lookup (l.)
id route1 route2 utc stime etime
---|--------|--------|-----|-------|------
1 11 22 111 1111 7777
2 11 22 111 1111 8888
3 22 33 222 2222 9999
4 22 33 222 3333 7979
5 22 33 222 3335 8989
Table: my (my.) | result
id route1 route2 utc stime | l.id l.etime
---|--------|--------|-----|------- |-------|----------|
2 11 22 111 1111 | 1 7777
5 22 33 222 2220 | 3 9999
6 22 33 222 3334 | 4or5 7979or8989
7 22 33 999 9999 | null null
一个新的表应该在哪里,结果被追加到的my
最后一个山坳创建。 任何帮助表示赞赏。提前致谢。
减去这些值 - 然后按这个减法排序,并且限制1 – Randy