两个表左连接语法

时间:2013-11-14 11:58:23

标签: mysql sql

帮助,我需要使用左连接。我有两张桌子; Horse_table,有horse_id,名字。 Entry_Table,有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,但它不会返回任何结果。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

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 :(得分:0)

列出所有位置大于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;