这里是我的查询:如何使用single where子句而不是两个完全相同的子句?
SELECT *
FROM posts p1
CROSS JOIN (SELECT COUNT(*) cnt, COUNT(amount) cntamt
FROM posts p2
WHERE p2.type = 0
OR p2.amount IN (:vals2)
OR p2.date_time BETWEEN :s2 AND :e2) t
WHERE p1.type = 0
OR p1.amount IN (:vals1)
OR p1.date_time BETWEEN :s1 AND :e1
ORDER BY p1.id
LIMIT 0,2
正如你看到的,有两个where
条款到上面的查询,都是完全一致的。现在我想知道,如何用单个where
子句编写查询?
它们不一样,除非:vals2魔法上与vals1相同。 –