Çok sayıda farklı müşteri adayı için iletişim bilgileri içeren birden fazla tablom var. Kimlikler listesi ve 'leads
' adları, 'phones
' numaralı telefon numaraları ve 'lead_phones
'bağlantısını birleştiren bir tablo içeren bir tablo vardır. Bazı kişilerin o kişi için birden fazla telefon numarası vardır. Şöyle bir sorgu çalıştırdığınızda:MySql yeni sütununda çoklu ilişkiler
SELECT l.created,
l.id,
l.first_name,
l.last_name,
ph.number phone1,
#IF(COUNT(ph.number) > 1, *second phone*, null) AS phone2,
e.email email
FROM leads l
LEFT JOIN lead_phones lp ON lp.lead_id = l.id
LEFT JOIN phones ph on ph.id = lp.phone_id
LEFT JOIN lead_emails le ON le.lead_id = l.id
LEFT JOIN emails e on e.id = le.email_id
ORDER BY l.created DESC;
Ben gerçekten sadece bir satırda Betty Boo koymak mümkün yapmak istiyorum ne bu
created id first_name last_name phone email
2016-03-22 15:53:01 45620 Jimmy Dean 5551234567 [email protected]
2016-03-22 15:53:00 45619 John Smith 5554561234 [email protected]
2016-03-22 15:51:54 45618 Betty Boo 5552582585 [email protected]
2016-03-22 15:50:02 45617 Betty Boo 5551478965 [email protected]
gibi görünen bir tablo elde telefon 1 ve telefon 2. Sorgumdaki yorumlanan satır, istediğimi alma girişimiydi. Bunu nasıl bitireceğimi anlayamadım.
Teşekkür
Can orada: Bu
id
alan (beklenen sonuçlar yardımcı olacağını) döndü, ancak sadece kurşun başına 2 telefon numaralarının maksimum olabilir varsayarak gereken biraz belirsiz, daha sonra buradamin
vemax
kullanarak tek seçenek 2'den fazla telefon numarası olmak mı? Eğer öyleyse, 'dinamik sql' kullanmanız gerekecek ... Eğer değilse, bunu toplama ile yapmak için birkaç farklı yol var. – sgeddes