Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  12 662
Denne er grei:

SELECT * from kalender;

men jeg trenger også en verdi fra feltet navn i tabellen medlemmer hvor kalender.id==medlemmer.id

Kan man gjøre dette i en query eller må man bruke to? Jeg bruker 2 nå og syns det er litt teit.
improbable
Gusto's Avatar
DonorAdministrator
SELECT k.*, m.navn
FROM kalender AS k, medlemmer AS m
WHERE k.id = m.id;
▼ ... over en uke senere ... ▼
Og hvis jeg vil legge til en teller på hvor mange ting jeg har i kalenderDetaljer?

Jeg ser det blir gjort her på forumet den viser forum også teller den opp hvor mange innlegg og responser som eksisterer.
Sist endret av fxxked; 5. desember 2003 kl. 08:55.
improbable
Gusto's Avatar
DonorAdministrator
SELECT COUNT(id) AS antall_rader_i_tabellen
FROM kalenderDetaljer;

MySQL Dokumentasjon

Dette du spør om er temmelig basic. Du burde bli vant med å sjekke API-dokumentasjon. Ikke for vår del, men for din egen del. Du sparer enormt med tid på å bare finne svaret med en gang i dokumentasjonen istedenfor å vente i seks timer på at jeg eller andre skal svare her. Dessuten kommer man ofte over masse annet nyttig underveis som man kan få bruk for senere mens man leser i APIen.
Det du viste meg der er ganske basic, men i det jeg tar dine to poster og slår dem sammen får jeg error.

[edit]
Det er mest det syntaktiske jeg ikke har helt i blodet.
[/edit]
Sist endret av fxxked; 5. desember 2003 kl. 20:33.
Om du bare skal telle resultatene fra queryen kan du jo bare bruke mysql_num_rows(). Count() er mer beregnet på å lage statestikk og slikt av data.
Men jeg skal ikke bare telle, jeg skal telle antall av relaterte i en relatert tabell:

select forumID,count(forumID) FROM innlegg GROUP BY forumID;
+---------+----------------+
| forumID | count(forumID) |
+---------+----------------+
| 2 | 2 |
| 10 | 2 |
| 11 | 1 |
| 13 | 2 |
| 17 | 2 |
+---------+----------------+
5 rows in set (0.00 sec)

mysql> select id from forum WHERE ( fjernet IS NULL or fjernet="0" );
+----+
| id |
+----+
| 7 |
| 8 |
| 10 |
| 11 |
| 12 |
| 13 |
| 17 |
| 18 |
+----+

Ønsker én query istede for to resultater av eksempelet over bør bli:

+----+----------------+
| id | count(forumID) |
+----+----------------+
| 7 | 0 |
| 8 | 0 |
| 10 | 2 |
| 11 | 1 |
| 12 | 0 |
| 13 | 2 |
| 17 | 2 |
| 18 | 0 |
+----+----------------+

[edit]
Denne gir count > 0
---
select f.id,i.forumID,count(forumID) FROM forum AS f, innlegg AS i WHERE i.forumID=f.id and ( f.fjernet IS NULL or f.fjernet="0" ) GROUP BY i.forumID;
[/edit]
Sist endret av fxxked; 5. desember 2003 kl. 23:03.
improbable
Gusto's Avatar
DonorAdministrator
Er det ikke det du er ute etter? At count er større enn 0?
...bør bli:

+----+----------------+
| id | count(forumID) |
+----+----------------+
| 7 | 0 |
| 8 | 0 |
| 10 | 2 |
| 11 | 1 |
| 12 | 0 |
| 13 | 2 |
| 17 | 2 |
| 18 | 0 |
+----+----------------+
improbable
Gusto's Avatar
DonorAdministrator
Det virker som det er en logisk feil. Mao blir det vanskelig for oss å lokalisere feilen, ettersom det ikke har noe med selve syntaksen å gjøre (teknisk feil).

Opprinnelig postet av fxxked
Det er mest det syntaktiske jeg ikke har helt i blodet.
Vis hele sitatet...
Det er vel det API-dokumentasjonen er for?
Det går ikke an å telle til 0 av en eller annen grunn, kjekt noen ganger, ulempe andre...
Prøv denni her:

Kode

SELECT forum.id,count(innlegg.id) 
FROM innlegg 
	RIGHT OUTER JOIN forum ON
		inlegg.forumID = forum.id 
group by forum.id;
Z
Fin den, men tar ikke hensyn til:
( forum.fjernet IS NULL or forum.fjernet="0" ) and ( innlegg.fjernet IS NULL or innlegg.fjernet="0" )

Forstår heller ikke hvor man skal legge inn forutsetningen nevnt over, da denne ikke funker:

Kode

SELECT forum.id,count(innlegg.id)
	FROM innlegg WHERE ( fjernet!="1" )
	RIGHT OUTER JOIN forum ON
		innlegg.forumID = forum.id
	group by forum.id;
nærmeste til nå:
Ulempen er at den ikke tar hensyn til slettede innlegg :-(

Kode

SELECT forum.id,count(innlegg.id),navn FROM innlegg RIGHT OUTER JOIN forum ON innlegg.forumID = forum.id
    -> WHERE ( forum.fjernet IS NULL or forum.fjernet="0" )
    -> group by forum.id;
Sist endret av fxxked; 10. desember 2003 kl. 13:32.