SQL语句有错误么?

2025-01-01 09:26:38
推荐回答(5个)
回答1:

问题确实出在 or 这个条件上,造成数据返回过大卡住的现象,但是如果非要有or这个条件的话可以改成这样:

select a.* from table1 a, table2 b where a.tid = b.id and a.state = 1
union all
select * from table1 where tid = 0 and state = 1

回答2:

你这条语句相当於,这样的结果集是不是很大
select a.* from table1 a, table2 b where a.tid = b.id or (a.tid = 0 and a.state = 1)
如果不加括号,优先级是 not > and > or

回答3:

你加了OR那前面那句a.tid = b.id 意义就不打了,
结果集就是笛卡尔积....
得这样改
select a.* from table1 a, table2 b where a.tid = b.id and (r a.tid = 0 or a.state = 1);

回答4:

select a.* from table1 a, table2 b where a.tid = b.id or (a.tid = 0 and a.state = 1);这样试试

回答5:

是不是数据量太大?如果这样可以建个索引试试,貌似没什么语法问题。