我有一个表,其中有两列:parent_column和child_column
这是我想要实现的目标: 我想显示父列的计数以及随机子。我尝试了内部查询,但这并没有使我的工作。
这是我的表:
Child PARENT
1 55
2 55
3 55
这就是我想要的: 在第一次刷新时
parent count child
55 3 3
第二次刷新
parent count child
55 3 2
依旧......
我试过这个
SELECT t1.parent, count(*) count, t2. child
FROM t1
INNER JOIN (
SELECT parent, child
FROM t2
ORDER BY RAND()
) t2 on t2.parent = t1.parent
GROUP BY t1.parent
LIMIT 25
修改 这是一个现实世界的场景: 上表是产品,每个产品都有父母。我想要实现的是: 我想在前端展示5款产品。 每个产品都应该有一个独特的父母。另一个复杂性是,在每次刷新页面时,应更改此产品,因为父级可以拥有多个产品。 任何帮助将不胜感激
演示 在第一次刷新
Product Company
P1234 Samsung
P5555 LG
第二次刷新
Product Company
P2345 Samsung
P5123 LG
由于
答案 0 :(得分:1)
这样做你想要的吗?
SELECT t1.parent,
(select count(*) from t2 where t2.parent = t1.parent) as count,
t2. child
FROM t1
ORDER BY RAND()
LIMIT 25;
我真的没有在外部查询中看到聚合的目的。
答案 1 :(得分:1)
尝试这种方式:
select t1.parent, count(*),
( select child
from test t2
where t2.parent = t1.parent
order by rand()
limit 1 ) child
from test t1
group by t1.parent;
在sqlfiddle上查看:http://sqlfiddle.com/#!2/4860c/3