我有一张表 t ,有900个ID,1-900。出于我的任务的目的,我需要做一些事情(我认为这种类型的查询背后没有任何意义,因为它是我正在尝试的东西): id不是唯一的(因为它有些外键让我们说)!
SELECT DISTINCT(t5.id) FROM (
SELECT DISTINCT(t1.id) FROM t t1 WHERE {...}
UNION SELECT DISTINCT(t2.id) FROM (
SELECT DISTINCT(t0.id) FROM t t0 WHERE {...}) as t2
INNER JOIN t t3 ON t2.id=t3.id WHERE{...}
UNION SELECT DISTINCT(t3.id) FROM t t4 WHERE {...})
t5 ORDER BY t5.id
问题是查询,返回远离900现有的ID。一路走到10.000-20.000以上。请帮我提供所需的所有必要信息。
答案 0 :(得分:0)
我不确定,但您可能需要在第二个选择字段中添加as id
,如下所示:
SELECT DISTINCT(id) FROM ( SELECT DISTINCT(t1.id) **as id** FROM t t1 WHERE {...} UNION SELECT DISTINCT(t2.id) FROM t t2 WHERE {...} INNER JOIN t t3 ON t2.id=t3.id WHERE{...} UNION SELECT DISTINCT(t3.id) FROM t t4 WHERE {...}) t5 ORDER BY t5.id