繁体   English   中英

剩下两个表的连接语法

[英]Two tables left join syntax

帮助,我需要使用左联接。 我有两个桌子。 Horse_table,其中有horse_id,名称。 Entry_Table,其中有horse_id。 我需要列出从未赢得过冠军的马的horse_id和名称。 按horse_id排序。

这就是我所拥有的;

Select a.horse_id, a.name,
COALESCE ('place'>=1) as 'Never Won First Place'
From horse a LEFT JOIN entry b
ON (a.horse_id=b.horse_id)
AND (b.horse_id=a.name)
Where Horse_id<=502
ORDER by Horse_id;

问题是它返回了所有的马匹,而不是应该返回的那匹马,我尝试使用Where b.place>=1但是它不返回任何结果。

尝试这样的事情:

SELECT a.horse_id,
  a.NAME
FROM horse a
INNER JOIN (
  SELECT horse_id, min(place) 
  FROM ENTRY
  GROUP BY horse_id
  HAVING MIN(place) > 1
) b ON a.horse_id = b.horse_id
ORDER BY Horse_id;

只要该位置不是第一名,您就可以将其以最高的位置(MIN(PLACE))加入到马桌上。

列出所有位置大于1的马ID和马名(意味着永远不会获得第一名)。

Select 
    a.horse_id, a.name,
From 
    horse a 
INNER JOIN 
    entry b
ON 
    a.horse_id=b.horse_id
Where 
    b.place>1
ORDER by a.horse_id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM