我有一个包含许多表的数据库..每个表都只存储了ID。现在我想做的是:
SELECT id FROM table1, table2, table3
GROUP BY id;
但我也希望通过降低发生顺序对它们进行排序。
例如,所有3个表中的ID应显示在顶部,而仅出现在一个表中的ID应位于底部。关于如何做到这一点的任何线索?
答案 0 :(得分:5)
试试这个
select id from
(
SELECT id FROM table1
union all
select id from table2
union all
select id from table3
) as t
GROUP BY id
order by count(id) desc
答案 1 :(得分:1)
select sum(t1.id IS NOT NULL,t2.id IS NOT NULL, t3.id IS NOT NULL) as total,t1.id from table1 as t1 join table2 as t2 on t1.id=t2.id join table3 as t3 on t3.id = t1.id order by total desc;
我不确定你的问题,但这可以帮助
答案 2 :(得分:-2)
select id from
(
SELECT id FROM table1
union all
select id from table2
union all
select id from table3
) as t
GROUP BY id
order by id desc