我試圖從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。 –