Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittá del Messico (Messico)
    Messaggi
    610

    problema con QUERY su due tabelle

    Devo relazionare in una unica SELECT due tabelle, di tutti i campi che ci sono gli unici che mi servono per la QUERY sono quelli sotto elencati (il DB é in spagnolo ed anche i campi).

    (TABELLA documentos)
    - id_documentos (chiave primaria)
    - estatus_documentos (1 documento attivo, 2 documento non attivo)
    - permisos_documentos (1 documento visibile a tutti ossia pubblico, 2 é privato ed é visibile solo se autorizzato ossia se l'usuario appare nella tabella permisos_documentos)


    (TABELLA permisos_documentos)
    - id_documentos (relazione con l'id_documentos della tabella 'documentos')
    - id_usuario (id del usuario autorizzato)


    In pratica devo visualizzare dei record in base ai seguenti filtri:
    1) che il campo estatus_documentos = 1 ossia solo documenti attivi
    2) che il campo permisos_documentos = 1 o se é con il valore 2 si visualizza solo se l'usuario appare nella tabella permisos documentos)
    3) l'usuario di prova é il id_usuario = 45


    Faccio un esempio pratico con DB di prova:


    TABELLA documentos
    id_documentos | estatus_documentos | permisos_documentos
    33 1 1
    34 1 2
    35 1 2
    36 2 1


    TABELLA permisos_documentos
    id_documentos | id_usuario
    34 45
    35 76

    In questo esempio solo si deve visualizzare della tabella documentos i records:
    33 (perché documento pubblico) e 34 (documento privato peró autorizzado nell'altra tabella con id_usuario = 45)
    il 34 non lo visualizzo perché anche se é autorizzato non é l'usuario di prova e il 36 anche se pubblico non é attivo

    la mia QUERY di prova anche se sbagliata... é la seguente:
    SELECT * FROM documentos WHERE estatus_documentos = 1 AND permisos_documentos = 1 || (id_documentos IN (SELECT id_documentos FROM permisos_documentos WHERE id_usuario = 45))

    Spero di essermi spiegato grazie a tutti.
    M.Solazzi
    from
    Mexico City!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittá del Messico (Messico)
    Messaggi
    610
    la query che utilizzo funziona:
    SELECT * FROM documentos WHERE estatus_documentos = 1 AND permisos_documentos = 1 || (id_documentos IN (SELECT id_documentos FROM permisos_documentos WHERE id_usuario = 45))


    l'unico problema é che se alla query metto un LIKE alla fine giá non funziona...
    SELECT * FROM documentos WHERE estatus_documentos = 1 AND permisos_documentos = 1 || (id_documentos IN (SELECT id_documentos FROM permisos_documentos WHERE id_usuario = 45)) AND titulo_documentos LIKE %doc%

    immagino perché filtra solamente la prima query e non entrambe come posso risolvere?
    M.Solazzi
    from
    Mexico City!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittá del Messico (Messico)
    Messaggi
    610
    Qualcuno mi puó aiutare...
    M.Solazzi
    from
    Mexico City!!

  4. #4

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.