這裏是我的查詢:如何使用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相同。 –