Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    154

    [MySQL] Query con due tabelle

    Ciao a tutti,

    ho queste due tabelle che hanno il campo date uguale che vorrei incrociare per avere una lista degli album con icona l'immagine con "position" più bassa:
    codice:
    `albumID`, `date`, `category`, `title`, `easyTitle`, `text`, `position`, `view`
    `imageID`, `date`, `albumTitle`, `image`, `imageTitle`, `imageDesc`, `price`, `position`, `view`
    Ho provato così:
    codice:
    SELECT MIN(images.position), images.image, albums.albumID, albums.date, albums.category, albums.title, albums.easyTitle, albums.text FROM albums JOIN images WHERE albums.date = images.date GROUP BY images.date ORDER BY albums.position ASC
    Ma in realtà non riesco a prendere l'immagine con la posizione più bassa
    Come dovrei fare? Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    372
    secondo me devi utilizzare una query dentro altra...

    quella interna prendi un identificativo o la posizione di quella più bassa (con top 1), e il risultato la metti come condizione nel where

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    154
    Quindi se ho capito bene mi consigli di fare due query? Ci avevo pensato, ma non esiste un modo per ottenere il risultato con una sola?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    372
    in qualsiasi caso visto che hai due tabelle un'altra opzione è utilizzare una union nel from:

    es:

    select top1 *
    from (select aaa,bbb, position from tab1
    union
    select ccc as aaa, dddd as bbb, position from tab2)
    order by position



    ciao!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    154
    No, select top1 .... non funziona con MySql.

    Così riesco a ordinare le immagini per position ASC ma avendo l'elenco in sequenza dei due album:
    codice:
    SELECT images.position, images.image, albums.albumID, albums.date, albums.category, albums.title, albums.easyTitle, albums.text FROM albums JOIN images WHERE albums.date = images.date ORDER BY images.position ASC
    Adesso dovrei filtrare i risultati prendendo solo il primo record per ogni album..... ma non riesco a capire come?? Qualcuno mi saprebbe aiutare?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    154
    RISOLTO!

    codice:
    SELECT * 
    FROM (
    
    SELECT images.position, images.image, albums.albumID, albums.date, albums.category, albums.title, albums.easyTitle, albums.text
    FROM albums
    JOIN images
    WHERE albums.date = images.date
    ORDER BY images.position, albums.position ASC
    ) AS t1
    GROUP BY DATE

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 © 2026 vBulletin Solutions, Inc. All rights reserved.