Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [mysql] query x 5 risultati su 3 tabelle

    Mi spiego:

    Ho tre tabelle sullo stesso db, e devo prelevare le ultime cinque righe inserite, ordinate per timestamp, escludendo quelle con uno status=1.

    ESEMPIO:

    TAB 1:
    id testo timestamp status
    1 pippo 20070124230443 1
    2 pluto 20070124220910 0
    3 qui 20070124220233 0
    4 quo 20070124215635 1
    5 qua 20070124200443 0

    TAB 2:
    id testo timestamp status
    1 xxxx 20070124220000 0
    2 yyyy 20070124214522 0
    3 www 20070124210233 1
    4 qqqq 20070124200355 0
    5 ssss 20070124190443 0
    ...

    TAB 3:
    id testo timestamp status
    1 cccc 20070124235900 1
    2 pippo 20070124232044 1
    3 qqq 20070124210333 0
    4 quo 20070124194623 0
    5 qua 20070124182403 0
    ...


    L'ordine che voglio è questo:
    2 pluto 20070124230122 (da tab1)
    3 qui 20070124220233 (da tab1)
    1 xxxx 20070124220000 (da tab2)
    2 yyyy 20070124214522 (da tab2)
    3 qqq 20070124210333 (da tab3)



    E' possibile creare una sola query ottenendo i dati voluti?

    Spero di esser stato chiaro...
    Grazie in anticipo.
    http://www.indianiamericani.it

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    hai 2 possibili soluzioni,
    la prima è usare delle virtual table, sempre che la tua versione di mysql le supporti
    la seconda è usare un'sql tipo
    select * from tab1 where status=0 order by timestamp limit 0,5
    union
    select all * from tab2 where status=0 order by timestamp limit 0,5
    union
    select all * from tab3 where status=0 order by timestamp limit 0,5
    che ti restituisce i primi 5 di ogni tabella
    poi metti dentro un'array di array i dati estratti , li riordini e leggi i primi 5.

  3. #3
    Grazie.!
    Ho optato, provvisoriamente, per la seconda, quello che avevo già in mente d'altronde.
    Ma penso che creerò una nuova tabella ad hoc da interrogare poi a parte, per il futuro, che ogni qualvolta arrivano i nuovi dati vada ad eliminare il più vecchio, mantenendola così a 5 sole righe.
    http://www.indianiamericani.it

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