我试图从Sponsor
表中加入到Company
表中随机获取单个行。以下查询差不多的作品,但有时会返回一个NULL
赞助商。左加入单个随机记录MySQL
任何人都可以看到我在做什么错在这里?
SELECT C.ID AS CompID, C.Name AS CompName, S.ID AS SponID, S.Name AS SponName
FROM Company C
LEFT JOIN Sponsor S ON S.ID = (SELECT ID FROM Sponsor WHERE Company = C.ID ORDER BY RAND() LIMIT 1)
数据样本:在下面的一个
Company Table
| ID | Name |
| 1 | MyCompany |
Sponsor Table
| ID | Company | Name |
| 1 | 1 | Bruce |
| 2 | 1 | John |
查询结果:
| CompID | CompName | SponsID | SponName |
| 1 | MyCompany | 1 | Bruce |
| CompID | CompName | SponsID | SponName |
| 1 | MyCompany | 2 | John |
| CompID | CompName | SponsID | SponName |
| 1 | MyCompany | NULL | NULL |
如果有人甚至可以告诉我这是为什么发生,这将是巨大的。 –
显示样本数据。如果一个公司没有赞助商,你就无能为力。 –
在这种情况下,公司有2个赞助商。查询将返回Sponsor1,Sponsor2或NULL。 –