Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Query Ongelma

Clawhammer [24.11.2005 21:07:24]

#

Eli minulla on 3 taulua jotka ovat nimeltään Jäsen, Organisaatio ja Kunniamerkki. Yksi Jäsen voi kuulua moneen organisaatioon ja yhdellä jäsenellä voi olla monta kunniamerkkiä. Tällä hetkellä minulle tulostuu seuraavanlainen näkymä:


|--Jäsen--|--Organisaatio--|--Kunniamerkki
|--Kalle--|--Yritys--------|--------merkki
|--Kalle--|--Yritys2-------|--------merkki


Ongelma tuossa näkymässä on se, että Kallella on oikeasti vain yksi kunniamerkki, mutta jostain syystä siihen tulostuu toinen (eli kopio). Eli kuinka saa poistettua tuon toisen rivin merkin jota ei oikeasti ole. Queryn olen tehnyt näin:

<?PHP
$result = $db->query("SELECT DISTINCT jasen, organisaatio, merkki FROM jäsen
		      LEFT JOIN organisaatio ON(organisaatio.jasen_ID = jasen.jasen_ID)
		      LEFT JOIN merkki ON(merkki.jasen_ID = jasen.jasen_ID)
		      WHERE jasen_ID =" . $id . " ORDER BY jasen ASC");

?>

folio [24.11.2005 21:45:01]

#

<?PHP
$result = $db->query("SELECT jasen, organisaatio, merkki FROM jäsen
              LEFT JOIN organisaatio ON(organisaatio.jasen_ID = jasen.jasen_ID)
              LEFT JOIN merkki ON(merkki.jasen_ID = jasen.jasen_ID)
              WHERE jasen_ID =" . $id . " GROUP BY merkki.merkin_id_nimi_tai_jotain ORDER BY jasen ASC");

?>

Lisätään nyt vielä sen verran että itse unohtaisin tuon organisaation tuosta kyselystä ja hakisin sen/ne sitten erikseen.

ajv [24.11.2005 21:50:39]

#

Liittyykö tuo kunniamerkki jotenkin tuohon organisaatioon? Jos ei, kannattaisi varmaan tuota tiedonesitystapaa miettiä uusiksi.

Kuitenkin. Minusta SQL-puolella kaikki on kunnossa. Saat sieltä kaiken tarvittavan tiedon. PHP:llä vain muotoilet saadun datan vähän fiksummin, niin eikös se ole siinä?

Aha, ederth heittikin jo väliin esimerkin. Jos grouppaat kunniamerkin mukaan, niin sitten toi organisaation haku kusee.

Olga [25.11.2005 01:32:20]

#

Juurikin niin kuin herrat ylempänä totesivat. Eihän Kalleakaan ole kuin yksi kappale, mutta silti niitä tulostuu kaksi :) Eli nuo kunniamerkit ja organisaatiot tulee hakea erikseen, sillä niillähän ei keskenään ole mitään tekemistä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta