Mysql查询不返回第二个连接表的列

时间:2016-01-13 17:57:09

标签: php mysql select inner-join

为什么以下sql查询不会返回名为 comments 的第二个表的所有列,而只返回 wp_users 表的ID列?

SELECT ID FROM wp_users 
INNER JOIN (select * from wp_comments) as comments
ON ID = comments.user_id
WHERE comments.comment_type = 'user_course'

如果我将查询更改为以下语句,它应该是正常的,这意味着第1和第2表的所有列当然都符合WHERE标准。

SELECT * FROM wp_users 
INNER JOIN (select * from wp_comments) as comments
ON ID = comments.user_id
WHERE comments.comment_type = 'user_course'

1 个答案:

答案 0 :(得分:-1)

您的查询无效。您在INNER JOIN内创建了额外的选择,以创建新的临时表。然后你用这个表连接。此临时表中的字段不会自动选择到查询结果中。您应指定要选择的字段集。因此,您可以直接与wp_comments表联接,并将此表中的所有字段添加到使用c.*设置的结果字段中。所有查询都应该是这样的:

SELECT w.id, c.* 
FROM wp_users w 
INNER JOIN wp_comments c on c.user_id = w.ID
   and c.comment_type = 'user_course'