我需要合并两个查询:
首先查询:
SELECT `p`.`name`, `posts`.*
FROM `polls` `p`, `posts`
WHERE `p`.`id` = `posts`.`guid`
AND `first` = {$id}
AND `text` LIKE ?
with ... second query:
SELECT SUM(`deleted` = 0) AS 'posts'
FROM `posts`
WHERE `first`
NOT IN
(
SELECT `id`
FROM `posts`
WHERE `deleted` = 1
AND `first` = `id`
) AND `first` = {$fid}
有没有合并它们的机会?
答案 0 :(得分:0)
您可以使用UNION。你必须让他们返回相同的列。第二个查询必须返回其他所有内容的空白值。
答案 1 :(得分:0)
我不知道查询试图实现什么,或查询产生什么样的结果。我认为查询1搜索文本等帖子,查询2按ID搜索已删除的帖子。我已经完成了一个夹具,如果两个查询生成相同数量的行,它应该可以工作。
的变化: 1您需要将第二个查询中的AS更改为唯一名称(因此,posts_sum)。 2我还删除了第二个ID加入。
检查出来:
SELECT `p`.`name`, `posts`.*, SUM(`deleted` = 0) AS 'posts_sum'
FROM `polls` `p`, `posts`
WHERE `p`.`id` = `posts`.`guid`
AND `first` = {$id}
AND `text` LIKE ?
AND `first`
NOT IN
(
SELECT `id`
FROM `posts`
WHERE `deleted` = 1
AND `first` = `id`
)