如果我有一个多查询,例如:
SELECT * FROM my_database.`table` AS one
WHERE one.some_field LIKE 'abc';
SELECT * FROM my_database.`table` AS two
JOIN one
ON one.id = two.relatedId;
是的。这些是相同的表,它们应该是。当然,它要复杂得多,但这个例子说明了重点。
然后我收到一个错误(使用 PHP 和 PDO),例如:
未找到基表或视图:1146 表“my_database.one”不存在
我可以通过执行以下操作来规避此错误:
CREATE TEMPORARY TABLE one AS
(SELECT * FROM table AS one);
CREATE TEMPORARY TABLE two AS
(SELECT * FROM table AS two
JOIN one
ON one.id = two.relatedId
);
SELECT * FROM one;
SELECT * FROM two;
DROP TEMPORARY TABLE one;
DROP TEMPORARY TABLE two;
我尝试在第一个查询和第二个查询之间使用 UNION,使其成为单个查询,但得到了相同的错误。而且我也不想使用 UNION 。
是否有另一种不需要在此过程中显式创建临时表的方法?
注意:JOIN
在子查询上 ing 是不可接受的,从那时起我必须编写相同的查询两次,一次用于选择它,一次用于加入它。
编辑:我想要两个查询的结果。第二个查询需要加入第一个查询的结果集。