Autor Zpráva
andynewcastleth
Profil
V návaznosti na Nemohu si poradit s JOIN při MySQL dotazu by jsem požádal o následující pomoc:

AUTA
id | idSpojovaci | auto | kategorie
1 | a | Ford | 1
2 | b | Audi | 1
3 | c | BMW | 1
4 | d | Loď X1 | 2
5 | e | Loď X2 | 2
6 | f | Letadlo W1 | 3

MODELY
id | idSpojovaci | auto | cena
1 | a | Ford Model A | 100 000
2 | a | Ford Model B | 150 000
3 | a | Ford Model C | 200 000
4 | a | Ford Model D | 300 000
5 | b | Audi model 11 | 250 000


MŮJ CÍL JE TENTO TEXT:


V kategorii 1 se nachází XXX vozidel a nejlevnější model stojí XXX
V kategorii 2 se nachází XXX vozidel a nejlevnější model stojí XXX
V kategorii 3 se nachází XXX vozidel a nejlevnější model stojí XXX
V kategorii 4 se nachází XXX vozidel a nejlevnější model stojí XXX
V kategorii 5 se nachází XXX vozidel a nejlevnější model stojí XXX



SNAŽIL JSEM SE, ALE NEMOHU DÁLE:

$kategorie=1;
while($kategorie<6){
    $results = $mysqli->query("SELECT a.*, m.*, (SELECT count(id) FROM auta b WHERE b.kategorie = '$kategorie') pocetAutVKategorii FROM auta a LEFT JOIN (SELECT idSpojovaci, Min(cena) cena_od FROM modely GROUP BY idSpojovaci) m ON a.idSpojovaci = m.idSpojovaci  WHERE povoleno='1' AND kategorie='$kategorie'");
    while($row = $results->fetch_assoc()){
        echo "V kategorii $kategorie se nachazi $row[pocetAutVKategorii] a nejlevnější stojí $row[cena_od]<br>";
}

$kategorie++;
}


Výsledkem je toto (což rozumím, proč se tomu tak děje, ale nevím, jak to napsat správně)


V kategorii 1 se nachazi 9 a nejlevnější stojí 15664
V kategorii 1 se nachazi 9 a nejlevnější stojí 48876
V kategorii 1 se nachazi 9 a nejlevnější stojí 35277
V kategorii 1 se nachazi 9 a nejlevnější stojí 30047
V kategorii 1 se nachazi 9 a nejlevnější stojí 44430
V kategorii 1 se nachazi 9 a nejlevnější stojí 48353
V kategorii 1 se nachazi 9 a nejlevnější stojí 12003
V kategorii 1 se nachazi 9 a nejlevnější stojí 8865
V kategorii 1 se nachazi 9 a nejlevnější stojí 24817
V kategorii 2 se nachazi 10 a nejlevnější stojí 31355
V kategorii 2 se nachazi 10 a nejlevnější stojí 43123
V kategorii 2 se nachazi 10 a nejlevnější stojí 57506
V kategorii 2 se nachazi 10 a nejlevnější stojí 15664
V kategorii 2 se nachazi 10 a nejlevnější stojí 15664
V kategorii 2 se nachazi 10 a nejlevnější stojí 28740
V kategorii 2 se nachazi 10 a nejlevnější stojí 15664
V kategorii 2 se nachazi 10 a nejlevnější stojí 20894
V kategorii 2 se nachazi 10 a nejlevnější stojí 28740
V kategorii 2 se nachazi 10 a nejlevnější stojí 20894
V kategorii 3 se nachazi 10 a nejlevnější stojí 17756
V kategorii 3 se nachazi 10 a nejlevnější stojí 9388
V kategorii 3 se nachazi 10 a nejlevnější stojí 12003
V kategorii 3 se nachazi 10 a nejlevnější stojí 9388
V kategorii 3 se nachazi 10 a nejlevnější stojí 13049
V kategorii 3 se nachazi 10 a nejlevnější stojí 17495
V kategorii 3 se nachazi 10 a nejlevnější stojí 15664
V kategorii 3 se nachazi 10 a nejlevnější stojí 31355
V kategorii 3 se nachazi 10 a nejlevnější stojí 24294
V kategorii 3 se nachazi 10 a nejlevnější stojí 24294
V kategorii 4 se nachazi 12 a nejlevnější stojí 9388
V kategorii 4 se nachazi 12 a nejlevnější stojí 20894
V kategorii 4 se nachazi 12 a nejlevnější stojí 15664
V kategorii 4 se nachazi 12 a nejlevnější stojí 9388
V kategorii 4 se nachazi 12 a nejlevnější stojí 13049
V kategorii 4 se nachazi 12 a nejlevnější stojí 28740
V kategorii 4 se nachazi 12 a nejlevnější stojí 35277
V kategorii 4 se nachazi 12 a nejlevnější stojí 47019
V kategorii 4 se nachazi 12 a nejlevnější stojí 26517
V kategorii 4 se nachazi 12 a nejlevnější stojí 35277
V kategorii 4 se nachazi 12 a nejlevnější stojí 9388
V kategorii 4 se nachazi 12 a nejlevnější stojí 35277
V kategorii 5 se nachazi 7 a nejlevnější stojí 22202
V kategorii 5 se nachazi 7 a nejlevnější stojí 20894
V kategorii 5 se nachazi 7 a nejlevnější stojí 35277
V kategorii 5 se nachazi 7 a nejlevnější stojí 60095
V kategorii 5 se nachazi 7 a nejlevnější stojí 20894
V kategorii 5 se nachazi 7 a nejlevnější stojí 24817
V kategorii 5 se nachazi 7 a nejlevnější stojí 20894
Kajman
Profil
Strašně nesmyslně to patláte. Zkuste si o sql přečíst nějakou knížku.

Viděl bych to na něco jako
SELECT a.kategorie,
       Count(DISTINCT a.id) aut,
       Min(m.cena)          cena_od
FROM   auta a
       LEFT JOIN modely m
              ON a.idspojovaci = m.idspjovaci
GROUP  BY a.kategorie  
andynewcastleth
Profil
Funguje, díky!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0