我知道這個問題可能已經回答了幾千次,但是我發現這個的每一個變化都不起作用。MySQL連接數從另一個表中匹配記錄
我所擁有的是2張表格,我希望它顯示所有結果的第一個表格,沒有「where」或任何限制它的地方。
第二個表我想匹配一個id到第一個表,它可以有多個引用它的行,所以我要計算這個數。
因此,可以說第一個表是這樣的:
ID - name
1 - one
2 - two
3 - three
4 - four
,第二個表是這樣的
ID - REF
1 - 1
2 - 1
3 - 2
4 - 2
5 - 3
6 - 3
7 - 4
8 - 4
我希望他們像這樣結合:
ID - name - count
1 - one - 2
2 - two - 2
3 - three- 2
4 - four - 2
我曾嘗試使用子查詢,左連接,右連接,內部連接,子查詢連接,分組和9次十我得到20我應該得到1300個結果中第一個ID的結果。剩下的我只得到一個不正確的數字,沒有名字。
我覺得這是MySQL 101,但是在嘗試了多個變體並且沒有任何東西的時候,我覺得必須有一些我失蹤的東西。
我會很樂意被定向到一個問題,那就是在完全相同的狀況(2小時的尋找,並沒有什麼作品完全一樣),或者一個簡單的查詢指出這種方法的邏輯,在感謝提前給任何答案的人,你將會度過我的一天。
如果需要任何附加信息,請告訴我,我故意遺漏了這個查詢,因爲我已經調整了很多次,所以沒有太大的相關性(我將不得不列出每一個我試過的查詢,這將是遠得多滾動)
好,我已經測試過的第一和回答,似乎在這方面的工作,所以我會擴大我的回答,問題是「回答」所以這只是一個擴展,如果沒有答覆我將關閉這與答案如下:
SELECT t.id, t.name, count(*) AS suppliers
FROM #__tiresku AS t
LEFT JOIN #__mrsp AS m ON t.name = m.tiresku_id
GROUP BY t.id, t.name
的擴張是內連接,我有另一個表日at更多的是一個列表,它有一個id和一個名字,就是這樣,我用一個id引用該表來代替「name」。
這可能有更好的選擇,然後加入(如外鍵或某物)。
我這個加入到選擇b.name AS brand_name
而且聯接INNER JOIN #__brands AS b ON t.brand = b.id
Worked with a sub query rather then join
我會測試它,讓你知道它是怎麼回事。如果它不起作用,我會更新這個問題來說明爲什麼這個例子不起作用。 –
似乎工作,雖然我會擴大我的問題,因爲我已經找到了問題的根源。 –