Visualizzazione dei risultati da 1 a 6 su 6

Discussione: funzionameto join

  1. #1

    funzionameto join

    Ciao ragazzi, io me la cavo in sql, non sono un mago ma qualcosa sò fare e arrivato a questo punto stò cercando di imparare il join, l'ho studiato su varie guide ma non ho trovato niente di chiaro, e ho una situazione in cui molto probabilmente devo usarlo, ve la mostro

    tabella log_activities:
    id
    id_utente
    ip_address
    browser
    Os
    azione
    ora
    data

    tabella utenti:
    id
    aziende_id
    username
    password
    email

    Allora la tabella log_activitiees contiene le attività degli utenti e il campo id_utente contierne il campo id della tabella utenti.

    Se io devo selezionare solo glu utenti che hanno attività come faccio?

    Dovrei selezionare gli utenti che hanno l'id nella tabella log_activities.

    Grazie
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  2. #2
    Ho provato a fare così, ma mi prende tutti gli utenti anche quelli che non hanno attività:

    SELECT * FROM utenti as u LEFT JOIN log_activities as l ON u.id = l.id_utente
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    6
    E' giusto, usando LEFT prendi tutti quelli che sono nella tabella a sinistra (utenti), hai provato a mettere RIGHT JOIN? in tal caso ti prendi quelli che sono a destra (log_activities).

  4. #4
    aridajela, lo indichiamo il DB?

    comunque, usa la INNER JOIN

  5. #5
    Originariamente inviato da optime
    aridajela, lo indichiamo il DB?
    Cosa vuol dire?

    Ragazzi ho risolto così:

    codice:
    SELECT timestamp,username,ip_address,data,ora,azione FROM utenti as u LEFT JOIN log_activities as l ON u.id = l.id_utente WHERE l.id_utente IS NOT NULL ORDER BY l.timestamp DESC
    Grazie ciao
    Che mondo sarebbe senza Nutella.

    PHP/MYSQL/HTML/CSS/JAVASCRIPT

  6. #6
    Originariamente inviato da CiRi..Cuber
    Cosa vuol dire?
    che il regolamento (questo sconosciuto...) al punto 4) dice che va indicato il tipo di db

    Originariamente inviato da CiRi..Cuber
    Ragazzi ho risolto così:
    codice:
    SELECT timestamp,username,ip_address,data,ora,azione FROM utenti as u LEFT JOIN log_activities as l ON u.id = l.id_utente WHERE l.id_utente IS NOT NULL ORDER BY l.timestamp DESC
    ... LEFT JOIN .... WHERE NOT IS NULL <elemento join della tabella di destra> equivale a ... INNER JOIN ... , con la differenza che vai sovralavorare il server, dicendo di prendere TUTTO e poi di scartare quello che non corrisponde. E studiamola 'sta JOIN

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.