Mysql 内部联接限制第二个表中的行
有两个表Mysql 内部联接限制第二个表中的行,mysql,sql,Mysql,Sql,有两个表查询和事务,一个事务可以有多个查询。我想获取10个事务的查询列表。我尝试了此查询,但这限制了总行数 SELECT t.tid , q.id , q.timestamp , q.domain , q.health , q.alexa_rank , q.destination , t.age , t.sb_isValid , t.userResponse , t.suggestion f
查询
和事务
,一个事务可以有多个查询。我想获取10个事务的查询列表。我尝试了此查询,但这限制了总行数
SELECT t.tid
, q.id
, q.timestamp
, q.domain
, q.health
, q.alexa_rank
, q.destination
, t.age
, t.sb_isValid
, t.userResponse
, t.suggestion
from queries q
join transactions t
on q.id like concat(t.tid, '%')
where t.uid = '115800979895438175088'
order
by t.time DESC
, tid
limit 10
此查询返回10行,包括查询和事务,但我希望其查询包含10个事务
如果有10个事务,每个事务有3个查询,那么它应该返回30+10=40行,但只返回10行。在子查询中选择10个事务:
select *
from
(
select *
from transactions
order by time desc
limit 10
) t
join queries q on q.id like concat(t.tid, '%')
order by t.time desc, t.tid, q.timestamp desc;
选择子查询中的十个事务:
select *
from
(
select *
from transactions
order by time desc
limit 10
) t
join queries q on q.id like concat(t.tid, '%')
order by t.time desc, t.tid, q.timestamp desc;
您想要哪些交易?有最近查询的十个事务?旁注:不使用适当的外键链接两个表,而是依赖子字符串,这是一个非常糟糕的数据设计。如果可以,请更改此设置。您正在运行哪个MySQL版本?我想获取最后10个事务及其查询,感谢您的建议,但现在对表进行任何更改都为时已晚。“太晚了,无法进行任何更改”通常指“我们只运行这个系统几周,所以现在进行更改是不值得的。”这听起来像是一个好的决定。如果这意味着“我们将在很长一段时间内运行这个系统,但是进行更改会感到很不方便,我们宁愿继续缓慢地运行这个系统,并且容易出错,这听起来像是一个错误的决定。您想要哪些交易?有最近查询的十个事务?旁注:不使用适当的外键链接两个表,而是依赖子字符串,这是一个非常糟糕的数据设计。如果可以,请更改此设置。您正在运行哪个MySQL版本?我想获取最后10个事务及其查询,感谢您的建议,但现在对表进行任何更改都为时已晚。“太晚了,无法进行任何更改”通常指“我们只运行这个系统几周,所以现在进行更改是不值得的。”这听起来像是一个好的决定。如果这意味着“我们将在很长一段时间内运行这个系统,但是进行更改会感到很不方便,我们宁愿继续缓慢地运行这个系统,并且容易出错,这听起来像是一个错误的决定。它起作用了,但结果不是降序的,然后更改
ORDER BY
子句。(我也相应地更新了我的答案。t.time
不在您最初的请求中,因此我制定了一个适当的orderby
子句。)它起作用了,但结果不是按降序排列,然后更改orderby
子句。(我也相应地更新了我的答案。t.time
不在您最初的请求中,因此我制定了一个适当的orderby
子句。)