Inner Join con più tabelle

  • Creatore Discussione Creatore Discussione luigi777
  • Data di inizio Data di inizio

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
Salve, ho un problema che ho risolto solo che il problema c'è lo quando ho più tabelle da inserire nel codice.

il codice e questo ma non funziona e mi dice:
mysqli_error() expects exactly 1 parameter, 0

PHP:
SELECT utenti._user as _user, articoli_categorie._cat as _cat, articoli.* FROM utenti 
       INNER JOIN articoli
          ON utenti.ID = articoli._userid and articoli_categorie.id = articoli._catid

tab : utenti
ID
tab : articoli_categorie
tab : articoli
userID
catID
cat
ho letto questa:
http://it.wikipedia.org/wiki/Join_(SQL)
e va benissimo:

con questa query:
PHP:
SELECT utenti._user as _user, eventi.* FROM utenti 
       INNER JOIN eventi
          ON utenti.ID = eventi._userid

vedo i campi e funziona normalissimo..

ora come faccio ad mettere più tabelle?

vi ringrazio molto.
buona serata.
 
Ultima modifica:
ho quasi risolto ma strana la cosa:

ecco la query nuova:
PHP:
SELECT utenti._user as _user , articoli_categorie.titolo as _cat, articoli.* FROM utenti 
       INNER JOIN articoli
          ON utenti.ID = articoli._userid and articoli_categorie.id = articoli._catid
ed ora ho fatto stampare l'errore a modo:
e mi dice questo:
Unknown column 'articoli_categorie.titolo' in 'field list'

come mai?
invece c'è :
PHP:
  CREATE TABLE `articoli_categorie` (
  `id` bigint(8) unsigned auto_increment,
   `titolo` varchar(255),
  `testo` longtext,
  `data` varchar(100),
  `active` int ,
  `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`));
  
  CREATE TABLE `articoli` (
  `id` bigint(8) unsigned auto_increment,
`_user` varchar(100),
  `_userid` bigint(8),
  `_cat` varchar(100),
  `_catid` bigint,
  `titolo` varchar(255),
  `testo` longtext,
  `tag` varchar(255),
  `data` varchar(100),
  `active` int ,
  `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`));

c'è qualcuno mi dice perché da quel messaggio lì.?

grazie mille.
 
ok, ho sbagliato io la query che stavo modificando ...
cosi funziona:
PHP:
"SELECT utenti._user as _user , articoli_categorie.titolo as categoria , articoli.* FROM utenti 
       INNER JOIN articoli 
          ON utenti.id = articoli._userid INNER JOIN articoli_categorie
          ON articoli_categorie.id = articoli._catid

perché modificavo la query del controllo dei record se ci sono o non ci sono invece dovevo modificare la query che fa la paginazione

Poi un problema e la query con il where.
mi dite come faccio a passare il parametro ?userid=1 etc..
nella query:
PHP:
else if($_GET["userid"]){
         $userid = $_GET["userid"];
        $pag = new Paginazione("SELECT utenti._user as _user, articoli_categorie.titolo as categoria , articoli.* FROM utenti 
       INNER JOIN articoli
          ON utenti.id = articoli._userid , articoli_categorie.id = articoli._catid WHERE utenti.id = ".$userid."",10, "pagina");
    }
cosi mi da questo errore:
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 '._catid WHERE utenti.id = 1' at line 3

grazie mille.
buona serata.
 
ho risolto:
PHP:
else if($_GET["userid"]){
         $userid = $_GET["userid"];
        $pag = new Paginazione("SELECT utenti._user as _user , articoli_categorie.titolo as _cat , articoli.* FROM utenti 
       INNER JOIN articoli 
          ON utenti.id = articoli._userid INNER JOIN articoli_categorie
          ON articoli_categorie.id = articoli._catid  WHERE articoli._userid = ".$userid."",10, "pagina");
    }

grazie mille.
 

Discussioni simili