Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
格式错误的MySQL查询_Mysql_Sql - Fatal编程技术网

格式错误的MySQL查询

格式错误的MySQL查询,mysql,sql,Mysql,Sql,这是问题所在 SELECT pl.id, pl.latitude, pl.longitude, pl.userId, pl.time, pl.type, com.id as com_id, com.text, com.time as com_time, (SELECT name as com_name, email as com_email, picture as com_picture FROM aa_users LEFT JOIN aa_comments ON aa_users

这是问题所在

SELECT pl.id, pl.latitude, pl.longitude, pl.userId, pl.time, pl.type, com.id as com_id, com.text, com.time as com_time,
 (SELECT name as com_name, email as com_email, picture as com_picture
  FROM  aa_users 
  LEFT JOIN aa_comments ON aa_users.id = aa_comments.user_id)
usr.name as com_usr_name,
usr.email as com_usr_email,
usr.picture as com_usr_picture,
usr.type as com_usr_type FROM aa_places as pl  
LEFT JOIN aa_comments as com ON ( pl.id = com.place_id )   
LEFT JOIN aa_users as usr ON (pl.userId = usr.id)   
第二次选择失败。 我需要做的是获得两种类型的用户:一个地方的用户所有者(user.name、user.email等)和一条评论的用户所有者

 (SELECT name as com_name, email as com_email, picture as com_picture
  FROM  aa_users 
  LEFT JOIN aa_comments ON aa_users.id = aa_comments.user_id)

我做不到。我应该更改什么?

您的内部选择在主查询的选择中。这是合法的,但执行此操作时只能返回一列(和一行)——您的查询将返回三列,并且可能返回许多行,因为它没有任何条件

我不完全清楚你想做什么,但我认为这应该让你更接近:

SELECT 
    pl.id, pl.latitude, pl.longitude, pl.userId, pl.time, pl.type, com.id as com_id, com.text, com.time as com_time,
    com_usr.name as com_name, com_usr.email as com_email, com_usr.picture as com_picture,
    usr.name as com_usr_name,
    usr.email as com_usr_email,
    usr.picture as com_usr_picture,
    usr.type as com_usr_type 
FROM aa_places as pl  
LEFT JOIN aa_comments as com ON ( pl.id = com.place_id )   
LEFT JOIN aa_users as com_usr ON  (com.user_id=com_usr.id)
LEFT JOIN aa_users as usr ON (pl.userId = usr.id)

根据评论进行更新。

pl或aa_评论中是否存在姓名、电子邮件和图片?你可能得指定你要说的名字这正是我想要的。在aa_comments表中,只有user_id字段。所以com2.name作为com_name,com2.email作为com_email,com2.picture,不存在所以,
places.userid=aa_users.id
给你地方所有者,
places.id=aa_comments.place_id
给你地方注释,和
aa_comments.user_id=aa_users.id
为您提供注释所有者?我会更新我的答案。