我在这里有一些情况。如何在不创建临时表的情况下执行MySQL查询?
我有一个查询:
SELECT DISTINCT (testrecurring.id), testrecurring.cxl, testci.cd
FROM testci, testrecurring
WHERE (testci.id = testrecurring.id)
AND testci.x_origin='1'
ORDER BY testrecurring.id DESC;
现在,如果变量没有设置,我需要做一个选择对这个查询,这里是渔获物。我需要排除一些ID。这是我现在如何做的。
我使用该查询创建一个表:create table xxx SELECT * .....
现在我的上一个查询的结果位于另一个名为xxx
的表内。
则:
if (!isset($var)) {
$delete = mysql_query("delete from xxx USING xxx, future_recurring where xxx.id = future_recurring.id");
}
和记录已被删除后,我做我的最后select * from xxx
。
这工作得很好,唯一的是我需要通过不创建任何表重做所有这些逻辑。也许做一些加入,我不知道如何继续。
我希望这不是很混淆
有什么想法吗?
感谢
它可能工作,但它不是要走的路。不要从你的表中创建表,你可以改用mysql视图(创建视图)。在你的情况下,你可以实现它而不创建表/视图。你可以做SELECT * FROM tbl WHERE tbl.id IN(SELECT * FROM tbl2 ...) – galchen
我将如何适应该删除语句。基本上我需要排除一些ID的基础上从另一个表中的其他ID ..? – Patrioticcow