Visualizzazione risultati 1 fino 6 di 6

Discussione: Ordinare tabella con riscontri su tabella2

  1. #1
    Guest

    Predefinito Ordinare tabella con riscontri su tabella2

    Ciao a tutti, saapete se è possibile ordinare una query in base ai riscontri che trova su una seconda tabella?

    Vi faccio un esempio
    Tab 1

    id
    1
    2
    3

    Tab 2

    id id_tab1
    1 3
    2 2
    3 3

    In questo caso l'ordine dovrebbe essere 3 2 1

    Si può fare?

  2. #2
    Guest

    Predefinito

    Aggiungi la clausola a fine query ORDER BY campo DESC

    Ovviamente al posto di campo, metti il nome del campo per il quale devi fare l'ordinamento.


  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Aggiungi la clausola a fine query ORDER BY campo DESC

    Ovviamente al posto di campo, metti il nome del campo per il quale devi fare l'ordinamento.

    Credo che tu non abbia capito, io devo trovare le corrispondeze su una seconda tabella.

    Codice PHP:
    "SELECT tab1.id FROM tab1 INNER JOIN tab2 ON (tab1.id = tab2.id_portali) WHERE tab1.id !=".(int)$id." LIMIT 4 ORDER BY tab2 DESC"
    Così non può funzionare...

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da mysolution Visualizza messaggio
    Credo che tu non abbia capito, io devo trovare le corrispondeze su una seconda tabella.

    Codice PHP:
    "SELECT tab1.id FROM tab1 INNER JOIN tab2 ON (tab1.id = tab2.id_portali) WHERE tab1.id !=".(int)$id." LIMIT 4 ORDER BY tab2 DESC"
    Così non può funzionare...
    Certo che così non funziona. Non puoi ordinare in base ad una tabella. Devi ordinare in base ad un campo. Che poi sia un campo di tab1 o di tab2 poco importa.

    Poi, se vuoi essere più chiaro, prova a fare un esempio concreto.

  5. #5
    Guest

    Predefinito

    Avevo già fatto un esempio ma forse è stato poco chiaro.

    Io ho una tabella che contiene dei post
    Tab 1

    id
    1
    2
    3
    4
    5

    Gli utente possono creare delle relazione tra i post (nel senso, l'articolo 1 è collegato all'articolo 3 perchè parlano della stessa cosa...) queste relazione vegono inserite nella tabella 2
    Tab 2

    id id_articolo id_articolo_collegato
    1 1 2
    2 1 3
    3 1 2
    4 2 4
    5 3 4

    Da questa tabella io capisco che due persone pensano che il post 1 sia collegato al post 2 e una al post 3.

    Vorrei quindi creare una query che mi restituisca tutti i post collegati al post che sto visualizzando in ordine decrescent

    In questo caso dato il post 1 l'ordine sarebbe 2345

  6. #6
    Guest

    Predefinito

    Per ordinare, puoi farlo SOLO ed esclusivamente con la clausola ORDER BY, c'è poco da fare ed il mio esempio è giusto, ma sicuramente hai scritto male la query:

    Codice:
    'SELECT tab1.id
    FROM tab1
    INNER JOIN tab2
    	ON (tab1.id = tab2.id_portali)
    WHERE tab1.id != ' . (int) $id . '
    LIMIT 4
    ORDER BY tab#.campo DESC'
    sostituisci tab# con il nome della tabella e campo col campo per il quale vuoi fare l'ordinamento. Se fai l'esempio con dei nomi, poi la query con degli altri, non possiamo aiutarti dato che non abbiamo la struttura della tabella precisa e quello che vorresti fare.

    Ultima modifica di biccheddu : 07-12-2011 alle ore 23.31.47

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •