具有相同临时表的多次JOIN多次

时间:2013-02-13 19:08:37

标签: mysql

我的候选人是查询的结果。我必须用十个元素测试所有有序的子集(我的候选人),无论我是否需要它。为此,我使用十个条件(对于子集的每个位置)。

我梦见这样的事情:

SELECT * INTO candidates FROM asdf WHERE qwerty;
SELECT * FROM table
JOIN candidates AS c1 ON condition1
JOIN candidates AS c2 ON condition2
...
JOIN candidates AS c10 ON condition10

但不可能不止一次重新开放候选人。所以我必须在一个查询中创建和使用候选人!我最好的想法是:

SELECT * FROM table
JOIN (SELECT 1 AS position UNION SELECT 2 ... UNION SELECT 10) AS notused
JOIN candidates 
WHERE ((position = 1 AND condition1)    
   AND (position = 2 AND condition2)
   ...
   AND (position = 10 AND condition10) )

这很有效,因为我在所有十个职位上都有候选人。但是有更清洁的解决方案吗?

0 个答案:

没有答案