我有两个表用户和事件。 要写入的查询是找到谁举办活动我必须编写一个MySql查询来查找已组织事件的用户姓名的排序顺序
查询1用户名:
select user.name
from user, events
where user.id = events.organiser_id
order by user.name;
查询2:
select name
from user
where id in(select organiser_id from events)
order by name;
那为什么“查询2”正常但是“查询1“不?如何决定何时使用子查询或联接?
我在这两个查询之间唯一的区别是第一个如果用户注册了多个事件,则会包含重复项。另外,你应该停止使用隐式'join'语法('from'子句中的',')。这是不符合ANSI-92标准(从1992年开始......超过25年前...),并且这种类型的连接并不完全支持。 – Siyual
'JOIN'相当于一个***相关的***子查询。你的**不是**。 –
你需要解释你的意思是“工作正常,但查询1不”。你是什么意思,它不起作用? – gview