首页 > 解决方案 > 将两个查询合并在一起

问题描述

这确实应该是一项简单的任务,但我已经在办公桌上敲了一个小时,试图弄清楚。也许这里有人可以提供帮助。我有两个疑问。

SELECT id FROM confirmed_pairs

所有这一切都是返回 1-24。已确认对的列表。简单的。

下一个,我不得不在其中硬编码一个“1”三次:

SELECT 1 AS orig_id, confirmed_pair_id FROM confirmed_pair_team_scores cpts WHERE cpts.confirmed_pair_id != 1 AND team_id <= 56 AND team_id IN
    (SELECT team_id FROM confirmed_pair_team_scores cpts2 WHERE cpts2.confirmed_pair_id = 1)

该查询的工作原理是它返回两列包含我想要的数据。尽管仅当 orig_id 为“1”时。我想要第一个查询中指定的 1-24。

有没有一种简单的 SQL 方法可以做到这一点,或者我应该在 PHP 中做到这一点并调用 24 次查询?谢谢!

标签: sqlsqlite

解决方案


另一个网站上的人回答了这个问题。诀窍是使用CROSS JOIN这样的:

SELECT confirmed_pairs.id  AS orig_id, confirmed_pair_id 
    FROM confirmed_pair_team_scores cpts 
    CROSS JOIN confirmed_pairs WHERE
        cpts.confirmed_pair_id != confirmed_pairs.id AND
        team_id <= 56 AND
        team_id IN
            (SELECT team_id FROM confirmed_pair_team_scores cpts2 WHERE   
             cpts2.confirmed_pair_id = confirmed_pairs.id )

推荐阅读