/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Hente data på tværs af to tabeller?
Fra : Stig Sørensen


Dato : 27-01-08 09:47

Hej gruppe.


Jeg skal have noget input ud fra en tabel, hvor WHERE passer med en
række i en anden tabel - samt have vist hvor mange rækker dette giver.


SELECT * from TabelA WHERE id_kommentar_topic = ( fra TabelB
(topic_id))
- Hvordan gør jeg dette?

Samt vil jeg gerne vide, hvor mange rækker der passer på ovenstående
forespørgelse.




På forhånd mange tak

 
 
Martin (27-01-2008)
Kommentar
Fra : Martin


Dato : 27-01-08 18:47

Stig Sørensen wrote:
> Hej gruppe.
>
>
> Jeg skal have noget input ud fra en tabel, hvor WHERE passer med en
> række i en anden tabel - samt have vist hvor mange rækker dette giver.
>
>
> SELECT * from TabelA WHERE id_kommentar_topic = ( fra TabelB
> (topic_id))
> - Hvordan gør jeg dette?

SELECT
a.*,
b.count(*) AS kommentarantal
FROM
TabelA AS a
INNER JOIN
TabelB AS b
ON
b.topic_id = a.id_kommentar_topic
GROUP BY
b.topic_id

Noget ala dette?

Martin (27-01-2008)
Kommentar
Fra : Martin


Dato : 27-01-08 18:48

Martin wrote:
> b.count(*) AS kommentarantal

Hov
COUNT(b.*) AS kommentarantal

Stig Sørensen (27-01-2008)
Kommentar
Fra : Stig Sørensen


Dato : 27-01-08 11:28

On 27 Jan., 18:47, Martin <mar...@aarhof.eu.invalid> wrote:
> Martin wrote:
> >   b.count(*) AS kommentarantal
>
> Hov
> COUNT(b.*) AS kommentarantal

Tak for dit hurtige svar.

SELECT
a.*,
COUNT(b.*) AS kommentarantal
FROM
nyheder AS a
INNER JOIN
punbb_posts AS b
ON
b.topic_id = a.id_kommentar_topic
GROUP BY
b.topic_id

Giver følgende fejlmeddelelse:

#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near '* ) AS kommentarantal FROM nyheder AS a INNER JOIN
punbb_posts AS b ON b.t' at line 1

Jeg har afprøvet det i phpMyAdmin. Det skal dog kombineres med PHP,
men det er jo en helt anden gruppe.


Jeg kan ikke se hvad fejlen skal være, det er alt for avanceret til
mig.

Stig Sørensen (27-01-2008)
Kommentar
Fra : Stig Sørensen


Dato : 27-01-08 12:15

Jeg fandt frem til en løsning:


SELECT a.*, COUNT(c.topic_id) AS kommentarantal
FROM nyheder AS a
LEFT JOIN punbb_posts AS c ON ( c.topic_id = a.id_kommentar_topic )
GROUP BY c.topic_id
ORDER BY kommentarantal DESC


- Det virker helt efter hensigten ;)

Og med PHP (hvis andre skulle kunne få glæde af det):

<?php
$query_hent_kommentar = mysql_query("SELECT a.*, COUNT(c.topic_id) AS
kommentarantal
FROM nyheder AS a
LEFT JOIN punbb_posts AS c ON ( c.topic_id = a.id_kommentar_topic )
GROUP BY c.topic_id
ORDER BY kommentarantal DESC");
while($row = mysql_fetch_assoc($query_hent_kommentar))
{
echo "<a href='/visnyhed.php?id=".$row['id']."'>".
$row['overskrift']." (".$row['kommentarantal'].")</a><br />";
}

?>


Tusind tak for hjælpen, og for at få mig på rette spor ;)

Stig Sørensen (28-01-2008)
Kommentar
Fra : Stig Sørensen


Dato : 28-01-08 07:46

Jeg er kommet i nye problemer, det omhandler stadig emnet, at hente på
tværs af to tabeller, så håber det ok, at jeg genbruger dette emne ;)


SELECT * from phpbb_garage, phpbb_garage_makes WHERE
phpbb_garage.make_id = phpbb_garage_makes.id

Ovenstående virker fint! Alt hvad jeg mangler nu, er at den _kun_ skal
hente data ud hvor 'phpbb_garage.member_id = 3'.
Jeg har prøvet utallige kombinationer, men får syntax fejl hver gang.


Hvordan gør jeg dette? Jeg kan ikke tilføje en ekstra WHERE nogen
steder uden jeg får fejl :(

Thorbjørn Ravn Ander~ (28-01-2008)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 28-01-08 15:48

"Stig Sørensen" <stig.sorensen@gmail.com> writes:

> Jeg har prøvet utallige kombinationer, men får syntax fejl hver gang.

Prøv at skrive de kombinationer her du tror er mest rigtige...
--
Thorbjørn Ravn Andersen

Stig Sørensen (28-01-2008)
Kommentar
Fra : Stig Sørensen


Dato : 28-01-08 07:51

On 28 Jan., 15:48, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:
> "Stig Sørensen" <stig.soren...@gmail.com> writes:
> > Jeg har prøvet utallige kombinationer, men får syntax fejl hver gang..
>
> Prøv at skrive de kombinationer her du tror er mest rigtige...
> --
>   Thorbjørn Ravn Andersen

Jeg har prøvet:

SELECT * from phpbb_garage WHERE member_id = 3, phpbb_garage_makes
WHERE phpbb_garage.make_id = phpbb_garage_makes.id

SELECT * from phpbb_garage WHERE member_id = 3, phpbb_garage_makes AND
WHERE phpbb_garage.make_id = phpbb_garage_makes.id

- Og ligende. Flytter blot rundt på WHERE member_id = 3, men har ikke
heldet med mig.


Thorbjørn Ravn Ander~ (28-01-2008)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 28-01-08 16:01

"Stig Sørensen" <stig.sorensen@gmail.com> writes:

> SELECT * from phpbb_garage WHERE member_id = 3, phpbb_garage_makes
> WHERE phpbb_garage.make_id = phpbb_garage_makes.id

Betingelserne til sidst:

select .... from .... where a=1 and b=2...
--
Thorbjørn Ravn Andersen

Stig Sørensen (28-01-2008)
Kommentar
Fra : Stig Sørensen


Dato : 28-01-08 08:14

On 28 Jan., 16:01, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:
> "Stig Sørensen" <stig.soren...@gmail.com> writes:
> > SELECT * from phpbb_garage WHERE member_id = 3, phpbb_garage_makes
> > WHERE phpbb_garage.make_id = phpbb_garage_makes.id
>
> Betingelserne til sidst:
>
> select .... from .... where a=1 and b=2...
> --
>   Thorbjørn Ravn Andersen

Tusinde tak. Det er noteret bag øret

Jeg havde faktisk været meget tæt på så, kan jeg se.
I stedet for WHERE a=1 and b=2 så prøvede jeg med WHERE a=1 and WHERE
b=2.


Men jeg bukker og takker igen.

Thorbjørn Ravn Ander~ (28-01-2008)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 28-01-08 16:16

"Stig Sørensen" <stig.sorensen@gmail.com> writes:

> Tusinde tak. Det er noteret bag øret

Skriv det nu et sted hvor du kan se det.

> Men jeg bukker og takker igen.

Velbekomme. SQL er sådan en dejlig herskeragtig måde at arbejde på
("giv mig det og det") indtil at man skal have sat farten op :)
--
Thorbjørn Ravn Andersen

Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407944
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste