| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
            
              |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |