Üç tablo ile tarihi

1 Cevap php

Aşağıdaki sorgu katılmak için, ben adı verilen üçüncü bir MySQL tablodan bazı verileri çekmek istiyorum "yorum." Her bir karşılık gelen bir S.TITLE s.submissionid sahiptir. Alan "submissionid" aynı tabloda "açıklama" dır.

Tablo her "submissionid" için "açıklama" adında bir alan saymak istiyorum "commentid."

Bunu nasıl yapabilirim?

Teşekkür peşin,

John

$sqlStr = "SELECT s.loginid, s.title, s.url, s.displayurl, l.username
             FROM submission AS s,
                  login AS l
            WHERE s.loginid = l.loginid
         ORDER BY s.datesubmitted DESC
            LIMIT 10";

1 Cevap

Evet bunu yapabilir ama zorunda gidiyoruz sorun bir giriş birden fazla başvuru vardır ve bir gönderme birden fazla yorum varsa, lütfen sonuçları yorumlamak zor olabilir olmasıdır.

10 giriş varsa bunu başka bir şekilde ifade etmek gerekirse, her biri 5 gönderimler vardır ve her sunulması geri 10 x 5 x 8 = 400 satır çekmeye gidiyoruz 8 yorum var. Şimdi bununla başa çıkabilirim ama veri yandan dışarı alabilirsiniz.

Bu varlık:

SELECT s.loginid, s.title, s.url, s.displayurl, l.username, c.commentid
FROM submission s
JOIN login l ON s.loginid = l.loginid
LEFT JOIN comments c ON s.submissionid = c.submissionid
ORDER BY s.datesubmissed DESC
LIMIT 10

Note: Ben ANSI SQL JOIN sözdizimini kullanmak için yukarıdaki değiştirdik. Bunu lehine olmalıdır. Genellikle okumak çok kolay.