Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [mysql-solito] 2 query in una

    ragazzo ho 2 tabelle:

    tbl1:
    id
    valore

    tbl2:
    id
    idtbl1
    valore

    dovrei fare una query che mi ritornasse tutti i record presenti in tbl1 più il numero di record in cui l'id di tbl1 è presente nei record di tbl2 nel campo ovviamente idtbl1...

    potrei risolvere tutto facendo la prima query e poi a scalare le varie query per contare il numero di record WHERE idtbl=iddellaprima query

    ma non è la soluzione più performante...

    grazie

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Una cosa del genere potrebbe andare bene?
    codice:
    SELECT 
    	tbl1.id, 
    	tbl1.valore, 
    	COUNT(tbl2.idtbl1) AS "conteggio" 
    FROM 
    	tbl1 
    LEFT JOIN tbl2 ON tbl1.id=tbl2.idtbl1 
    GROUP BY tbl1.id 
    ORDER BY tbl1.id
    Non l'ho provato per vedere se funziona correttamente...
    e non è detto che abbia interpretato correttamente quello che ti serve

  3. #3
    ora la provo...


    per farti capire io all'inizio avevo fatto cosi:

    codice:
    SELECT tbl1.*, COUNT(tbl2.id) as count FROM tbl1,tbl2 WHERE tbl1.id=tbl2.idtbl1 GROUP BY tbl1.id
    e funziona bene, l'unico problema è che non mi restituisce (giustamente) i record di tbl1 che non hanno nessuna corrispondenza in tbl2 (per via del WHERE)

  4. #4
    provata la tua, it works

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Son contento di essere stato utile


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.