【发布时间】:2012-02-22 09:51:12
【问题描述】:
表 1 -> id,名称
表 2 -> id、name、text_value、table1_id、table3_id
表 3 -> id、name
SELECT * FROM `table1`
LEFT OUTER JOIN table2 ON table1.id = table2.table1_id
WHERE
(
(table2.table3_id = '7' AND table2.name like ('%test%'))
)
AND
(
table2.table3_id = '1' and table2.text_value like ('%fast update%'))
)
GROUP BY table1.id
ORDER BY table1.id desc
【问题讨论】:
-
如果条件之间有相同的布尔运算符 (
AND),则可以删除所有括号,因为您不需要更改默认的评估顺序 -
我可以看到他对@mazzucci 的要求,他想看看 table1 是否包含表 3 中的两个请求记录,因此是奇怪的 AND。他最终得到的是一个不可能的 WHERE