基本上,我试图从基于两种不同群体的SQL获取数据,t.type必须等于single和t.status有平等1,但作为t.org我想它同时获得DUAL和RA,这里就是我试图无济于事.
SELECT
COUNT( p.tID )
FROM
ticket AS t
INNER JOIN
people AS p ON t.ID = p.tID
WHERE
t.type = 'single' AND t.status='1' AND t.org = 'RA' OR t.org = 'DUAL'
Run Code Online (Sandbox Code Playgroud)
我很确定他们的方法可以让这个查询正常工作,而不是我的想法
egg*_*yal 25
AND具有更高的优先级比OR,所以目前现有的表达被评估为:
WHERE
(t.type = 'single' AND t.status='1' AND t.org = 'RA') OR t.org = 'DUAL'
Run Code Online (Sandbox Code Playgroud)
要强制使用替代逻辑,需要包含明确的括号:
WHERE
t.type = 'single' AND t.status='1' AND (t.org = 'RA' OR t.org = 'DUAL')
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,可以使用MySQL的IN()运算符而不是OR:
WHERE
t.type = 'single' AND t.status='1' AND t.org IN ('RA','DUAL')
Run Code Online (Sandbox Code Playgroud)
您可以使用IN条件:
WHERE
t.type = 'single' AND t.status = '1' AND t.org IN ('RA','DUAL')
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用方括号将条件分组:
WHERE
t.type = 'single' AND t.status = '1' AND (t.org = 'RA' OR t.org = 'DUAL')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19954 次 |
| 最近记录: |