salve a tutti! devo fare una query su 4 tabelle, ma non so come venirne fuori, vi posto il dump di queste 4 tabelle:
codice:
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 29 Apr, 2005 at 09:50 AM
-- Versione MySQL: 4.0.23
-- Versione PHP: 4.3.10
--
-- Database: `teknolit`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `associazioni_accessori`
--
CREATE TABLE `associazioni_accessori` (
`id_prodotto` bigint(20) NOT NULL default '0',
`id_accessorio` bigint(20) NOT NULL default '0'
) TYPE=MyISAM;
-- --------------------------------------------------------
--
-- Struttura della tabella `desc_accessori`
--
CREATE TABLE `desc_accessori` (
`id_desc_accessori` bigint(20) NOT NULL auto_increment,
`desc_accessori` text NOT NULL,
`lingua` bigint(20) NOT NULL default '0',
`accessorio` bigint(20) NOT NULL default '0',
PRIMARY KEY (`id_desc_accessori`),
FULLTEXT KEY `desc_accessori` (`desc_accessori`)
) TYPE=MyISAM AUTO_INCREMENT=118 ;
-- --------------------------------------------------------
--
-- Struttura della tabella `nome_accessori`
--
CREATE TABLE `nome_accessori` (
`id_nome_accessorio` bigint(20) NOT NULL auto_increment,
`accessorio` bigint(20) NOT NULL default '0',
`nome` varchar(255) NOT NULL default '',
`nome_gestionale` varchar(30) NOT NULL default '',
`lingua` bigint(20) NOT NULL default '0',
PRIMARY KEY (`id_nome_accessorio`),
FULLTEXT KEY `nome_gestionale` (`nome_gestionale`)
) TYPE=MyISAM AUTO_INCREMENT=377 ;
-- --------------------------------------------------------
--
-- Struttura della tabella `prodotti`
--
CREATE TABLE `prodotti` (
`id_prodotto` bigint(20) NOT NULL auto_increment,
`serie` bigint(20) NOT NULL default '0',
`designer` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_prodotto`),
FULLTEXT KEY `designer` (`designer`)
) TYPE=MyISAM AUTO_INCREMENT=271 ;
ho riportato anche le versioni di phpMyAdmin e di mySQL nel caso possano servire.
io devo ottenere con una query una cosa del genere:
codice:
id_prodotto | id_accessorio | nome_accessorio | desc_accessorio |
la parte che non riesco a risolvere è quella relativa alla descrizione! in quanto non tutti gli accessori hanno una descrizione [la tabella delle descrizioni ha infatti 117 record, mentre quella dei nomi - tutti gli accessori hanno un nome - ne ha 376]
io ho fatto una query del genere:
codice:
SELECT `prodotti`.`id_prodotto` , `associazioni_accessori`.`id_accessorio`, `nome_accessori`.`nome`, `desc_accessori`.`desc_accessori`
FROM `associazioni_accessori`
INNER JOIN `prodotti` ON `associazioni_accessori`.`id_prodotto` = `prodotti`.`id_prodotto`
INNER JOIN `nome_accessori` ON `nome_accessori`.`accessorio` = `associazioni_accessori`.`id_accessorio`
INNER JOIN `desc_accessori` ON `desc_accessori`.`accessorio` = `associazioni_accessori`.`id_accessorio`
WHERE `nome_accessori`.`lingua` =1
AND `desc_accessori`.`lingua` =1
ORDER BY `id_prodotto`
ma giustamente mi ritorna solo i record in cui è presente anche la colonna descrizione! invece io vorrei che se la descrizione non è presente mi restituisca il record vuoto! sto provando con tutti i tipi di JOIN ma non ne vengo a capo!
mi date una mano? magari la soluzione sta dietro l'angolo, ma io non riesco a vederla!
grazie mille!