这样编写MySQL查询正确吗?

这样编写MySQL查询正确吗?,mysql,Mysql,大家好,我想知道这样写的查询是否正确: SELECT (SELECT t.name FROM type t WHERE t.id=a.id_type) AS TYPE, a.title title,a.description description,u.name name,u.email email FROM advert a INNER JOIN user u ON u.id=a.id_user WHERE a.id='2'; 我测试了这个查询,它可以工作,但我想知道的是

大家好,我想知道这样写的查询是否正确:

SELECT (SELECT t.name FROM type t WHERE t.id=a.id_type) AS TYPE,
       a.title title,a.description description,u.name name,u.email email
FROM advert a 
INNER JOIN user u ON u.id=a.id_user  
WHERE a.id='2';
我测试了这个查询,它可以工作,但我想知道的是,按照标准,使用子查询和连接是否正确。
抱歉,如果我的问题很愚蠢,但我找不到答案。

这是正确的,但我认为最好使用联接而不是子查询。此外,如果使用子查询,则应该确保它只返回一行

SELECT t.name AS TYPE,
       a.title title,a.description description,u.name name,u.email email
FROM advert a 
INNER JOIN user u ON u.id=a.id_user  
LEFT JOIN type t on t.id=a.id_type
WHERE a.id='2';

是的,这是允许的。这叫一个。但是,我认为MySQL通常执行连接更好:

SELECT t.name AS type, a.title title,a.description description,u.name name,u.email email
FROM advert a
INNER JOIN user u ON u.id=a.id_user
LEFT JOIN type t ON t.id = a.id_type
WHERE a.id = '2'

谢谢你的回答。我也尝试了一个连接,但我有一个班级项目,我必须使用至少4个查询,其中有一个子查询,所以我想我可以这样使用这个查询。(我不知道它们在英语中是如何命名的,但是,我的老师称它们为复杂查询-如果我能从我的语言翻译过来的话,这就是这个词)