格式错误的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
为您提供注释所有者?我会更新我的答案。