[英]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.