MYSQL-帮助仅加入一行
我当前返回的行不止一行,因此我尝试使用此连接来连接最近的项目MYSQL-帮助仅加入一行,mysql,Mysql,我当前返回的行不止一行,因此我尝试使用此连接来连接最近的项目 LEFT OUTER JOIN wp_posts wp_posts1 ON (wp_posts.ID = (SELECT MAX(post_parent) FROM wp_posts1 WHERE wp_posts1.post_parent = wp_posts.ID) ) 但我得到的错误是“SQL错误:表”web13-a-tablename.wp_posts1“不存在” 下面是返回太多结果的原始代码 SELECT wp_pos
LEFT OUTER JOIN wp_posts wp_posts1 ON (wp_posts.ID = (SELECT MAX(post_parent) FROM wp_posts1 WHERE wp_posts1.post_parent = wp_posts.ID) )
但我得到的错误是“SQL错误:表”web13-a-tablename.wp_posts1“不存在”
下面是返回太多结果的原始代码
SELECT
wp_posts.ID,
wp_posts.post_title,
wp_posts1.guid AS f_image,
wp_posts1.id AS f_ID
FROM wp_posts
LEFT OUTER JOIN wp_posts wp_posts1 ON (wp_posts.ID = wp_posts1.post_parent) AND wp_posts1.post_type = 'attachment'
WHERE wp_posts.post_type = 'custom'
AND wp_posts.post_status = 'publish'
AND (wp_posts.post_title LIKE '%smith%' OR wp_posts.post_title LIKE '%jones%')
ORDER BY
f_ID DESC
SQLFiddle显示选定的多行。我只想得到一行,我想选择最大的f_ID
所需结果:
ID POST_TITLE F_IMAGE F_ID
--------------------------------------------
2365 John Jones IMG_URL 2490
2385 Becky Smith IMG_URL 2390
将子查询更改为:
SELECT MAX(post_parent) FROM wp_posts as w3 WHERE w3.post_parent = wp_posts.ID
更新将中的查询更改为:
我的感觉是,这个问题有比表面上看的更多的东西。考虑提供一个SqLoFDLE,包括期望的结果集。根据您的建议添加了一个SQLFiddle。为了清晰起见,请提供所需的结果。谢谢,谢谢,但那对我不起作用。我现在在问题中添加了一个SQLFIDLE。我真的很抱歉,但我应该在FIDLE中包含更多数据。你发布的内容有效,但我正在提取多个记录,所以订单和限制1不起作用。我又更新了小提琴@PaulBenbow在您的小提琴中,下单后您没有限制1,因此这就是返回多行的原因我希望返回多行,但不要为同一用户重复行。限制1只会给我1。对不起,我是SQLFiddle新手,我们似乎在看两个稍微不同的查询,而我最初的问题不够详细。请查看更新的问题和SQLFIDLE,我在那里尝试了GROUP BY,但它没有返回最大F_ID。我认为它需要类似于在wp_posts.ID=从wp_posts1中选择MAXwp_posts1.post_parent,其中wp_posts1.post_parent=wp_posts.ID的左侧外部连接wp_posts 1,但我无法让它工作。
SELECT
wp_posts.ID,
wp_posts.post_title,
wp_posts1.guid AS f_image,
MAX(wp_posts1.id) AS f_ID
FROM wp_posts
LEFT OUTER JOIN wp_posts wp_posts1 ON (wp_posts.ID = wp_posts1.post_parent) AND wp_posts1.post_type = 'attachment'
WHERE wp_posts.post_type = 'custom'
AND wp_posts.post_status = 'publish'
AND (wp_posts.post_title LIKE '%smith%')
GROUP BY
wp_posts.ID