我遇到了mysql查詢的麻煩。我想得到一個唯一的名稱共享tenant_group_id號碼的配對。您只需要知道每個承租人都有唯一的individual_tenant_id,最多兩個單獨的承租人共享相同的tenant_group_id。MySQL選擇名稱的唯一配對
SELECT t1.first_name, t2.first_name
FROM individualtenant t1
LEFT JOIN individualtenant t2 ON t1.tenant_group_id = t2.tenant_group_id
AND t1.individual_tenant_id != t2.individual_tenant_id
眼下這是給我,但對兩種方式,例如,它會返回「約翰」,「梅利莎」和「梅利莎」,「約翰」,但我只需要一個獨特的配對。
編輯:如果個人中藥沒有合作伙伴,我需要在第二列有NULL。
大獲成功!現在,如果我想計算這些配對,那該怎麼辦?似乎你不能用COUNT()包裝GROUP_CONCAT(first_name),我怎麼做第二個。還有什麼是將這兩個名稱連接成一個分隔空間的好方法? (對不起所有請求) – MCH 2010-08-05 21:46:34
第一個,如果你想計算結果中的成員數量,你只需要第二列'COUNT(*)'(或任何特定的唯一字段)。我不建議用空格分隔名稱,因爲這可能是名稱的合法內容,我建議選擇一個不可打印字符的「SEPARATOR」(請查看「group_concat」工作原理的手冊),所以它或多或少不會出現在'first_name'列中,除非出現一些輸入錯誤。但請注意這是'hackish':仔細選擇你的分隔符,並始終保持警惕/可疑。 – Wrikken 2010-08-06 22:05:14