salve ragazzi ho un problema sicuramente piccolo per voi ma grosso per me

ho due tabelle
tab1 Elenco_sigarette
codice:
	id_sigaretta 	int(10) 		UNSIGNED 	 	AUTO_INCREMENT 	
	Nome_sigarette 	text 	latin1_swedish_ci 		 		
        Descrizione_confezione 	text 	latin1_swedish_ci 				
        prezzo 	text 	latin1_swedish_ci 				
        codice_a_barre 	text 	latin1_swedish_ci 			
	codice_a_barre_stecca 	text 	latin1_swedish_ci
tab2 magazzino

codice:
		id_magazzino 	int(10) 		UNSIGNED 	AUTO_INCREMENT 	
	 	codice_a_barre 	text 	latin1_swedish_ci 		
	 	quantita 	int(11) 			
		data_arrivo date 	NULL
ovviamente referenziano tra loro attraverso (magazzino.codice_a_barre=Elenco_sigarette.codice_ a_barre e magazzino.codice_a_barre=Elenco_sigarette.codice_a _barre_stecca con relazione 1:1)

Non riesco a concepire logicamente la query anninata , ovvero io voglio recuperare la quantita ,nome_sigarette,descrizione_confezione di tutte le sigarette .

ma non riesco a capire se devo fare una vista o una query annidata?

Dimenticato io ho provato a fare cosi:
codice:
SELECT magazzino.`quantita`,elenco_sigarette.Nome_sigarette,elenco_sigarette.Descrizione_confezione FROM (

SELECT magazzino.codice_a_barre,magazzino.quantita FROM magazzino GROUP BY magazzino.codice_a_barre
)

WHERE elenco_sigarette.codice_a_barre= magazzino.codice_a_barre || elenco_sigarette.codice_a_barre_stecca =  magazzino.codice_a_barre
ma mi da questo errore:
#1248 - Every derived table must have its own alias