JOIN o non JOIN

n1k4r0

Utente Attivo
15 Nov 2012
135
0
0
Salve a tutti, ho un problema con una query che proprio non riesco a risolvere:

ho due tabelle una con i dati relativi ad alcuni pittori (nome, anno di nascita, anno di morte, ecc) e una seconda con all'interno le opere (nome file dell'anteprima, titolo, anno).
per la maggior parte delle query non ho problemi ma avrei bisogno di visualizzare i dati completi di tutti gli autori in una pagina e quindi tutti i dati provenienti dalla tabella pittori più tutti i dati della tabella opere in modo da mostrare una serie di schede di autori comprendenti le anteprime delle opere con i titoli.
ho provato con una JOIN
Codice:
SELECT pittori.*, opere.image, opere.titolo FROM pittori, opere WHERE opere.idpittore=pittori.id
ma ovviamente ottengo una riga completa dei dati del pittore per ogni opera che esiste.

c'è un modo di ottenere in una sola riga sia i dati del pittore sia la lista delle opere?
oppure devo gestirmi i risultati da php una volta ottenuti i dati dalla JOIN?

Grazie :)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
secondo me non join
non credo sia possibile fare quello che chiedi al massimo puoi ottenere una tabella con tutte le opere associate al pittore
la soluzione piu semplice è in php eseguendo una seconda query nel ciclo della prima query
PHP:
<?php

$query = "SELECT * FROM pittori";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
    $query = "SELECT * FROM opere WHERE pittore = " . $row['id'];

    //e mostri i risultati
}
?>
 

n1k4r0

Utente Attivo
15 Nov 2012
135
0
0
grazie criric, non trovando nulla a riguardo in giro avevo pensato anche io che non fosse possibile ottenere il risultato con una sola query.
io avevo pensato che dal momento che mi occorre tutto il contenuto di entrambe le tabelle potevo risolvere con due query distinte, una per tutti i pittori e l'altra per tutte le opere e poi ricostruire un array con i risultati come li voglio io da php per poi ritornare il JSON che è quello che mi occorre alla fine.
non so se sia più rapido così o come dici tu ma si tratta solo di provare.

grazie mille
 
Discussioni simili
Autore Titolo Forum Risposte Data
B Outer join che non funge Database 2
D Il JOIN che non imparerò mai ad usare MySQL 2
A Count Inner Join e stampa record con id non duplicati PHP 1
D LEFT JOIN... non ci capisco nulla PHP 2
L Soluzione con INNER JOIN Database 0
K Problema Inner join PHP 1
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
M LEFT JOIN di diverse condizioni PHP 10
R Join articolato su 3 tabelle MySQL 5
M Join 3 tabelle PHP 0
L select join e sottrazione punti PHP 13
M Problema su query JOIN in tre tabelle PHP 0
MarcoGrazia Dati nulli su join tra più tabelle MySQL 1
M Ordinare una query join PHP 2
M Estrarre valori MAX da un db con una left join MySQL 8
P Query Mysql con Join PHP 2
S [PHP] Inner join su 4 tabelle PHP 6
M [PHP] Aiuto su inner join PHP 10
F [MySQL] Problema con LEFT JOIN MySQL 6
P [MySQL] Inner Join o Left Join MySQL 14
simgia [PHP] Ciclare una query JOIN PHP 2
simgia [MySQL] INNER JOIN problema MySQL 0
R [PHP] Estrapolare dati da una query left join PHP 0
C Php/Mysql query JOIN tra tabelle PHP 4
C Php/Mysql query JOIN tra due tabelle PHP 18
R [MySQL] SQL UPDATE INNER JOIN MySQL 5
G [MS Access] JOIN di due tabelle più GROUP BY MS Access 1
G [MySQL] Join o select MySQL 1
R [MySQL] Join, Count e Order (ASC & DESC)... MySQL 6
jdj78 inner join Classic ASP 18
V [Guida]: ho dubbi sulle Join MySQL 13
P Query con Somma di un Campo , aggregazione e join Database 3
V Quando mettere il JOIN e quando no? MySQL 1
L cinque tabelle e join PHP 2
P Join tabelle MySQL 4
Marco_88 Select distinct e join MySQL 2
Marco_88 Eliminare una colonna da una LEFT JOIN MySQL 4
M Query Join per 2 colonne MySQL 1
D Problema sintassi INNER JOIN a 3 tabelle PHP 4
L inner join MySQL 0
andrea.peo Problema query con join visualizzazione record ripetuti PHP 5
I Aiuto INNER JOIN MySQL 5
V Problema JOIN SQL PHP 3
A Ottimizzare di più JOIN su tabella/e da 25.000 records MySQL 0
L inner join su due tabelle PHP 5
S Mistero Join MySQL 0
G unire union e join insieme MySQL 7
ivarello JOIN Mysql PHP 2
P utilizzare INN JOIN PHP 8

Discussioni simili