我的疑问:
select b.*,a.`USA`as fd_lat,b.`UK` as fd_lot
from fdusa a
join incident_uk b
on a.`FBI`=b.`FBI`
and b.STATE='MD'
limit 0,5
我有一个列名INC_KEY
,
当限制为0.5时。单个结果显示5次。同样的事件关键是显示出来的。
如何将查询更改为剩余值的不同事件键。
答案 0 :(得分:1)
我怀疑JOIN操作产生了多个类似的结果。如果您加入2个表
A B
------
1 10
2 25
3 40
A C
------
1 x
1 x
2 z
你会得到
A B C
-------
1 10 x
1 10 x
2 25 z
快速解决方法是在SELECT子句中使用DISTINCT,即
SELECT DISTINCT b.*,a.`USA`as fd_lat,b.`UK` as fd_lot
如果这不适合您,您可以始终使用GROUP BY事件密钥并从那里获取。
答案 1 :(得分:0)
简单的答案是通过其他键或可能随机排序结果。将order by
子句放在limit
:
order by rand()
以随机顺序放置它们。但不能保证它们会有所不同。
第二种方法是使用group by
来获取不同事件键的不同值。以下发生大部分时间都在MySQL中工作,但不能保证:
select b.*,a.`USA`as fd_lat,b.`UK` as fd_lot
from fdusa a
join incident_uk b
on a.`FBI`=b.`FBI`
and b.STATE='MD'
group by inc_key
limit 0,5
这将为每个inc_key返回一行(因为group by
)。其余列是从具有相同inc_key值的行中任意选择的。在实践中,似乎来自第一行,尽管文档明确指出这不能保证。也不保证它们来自同一行。