Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [SQL] query tosta

  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    [SQL] query tosta

    devo mettere in join due tabelle

    tabella destinatati(2 campi)
    - id_destinatario (intero)
    - nominativo (testo)

    tabella mail (vari campi)
    - oggetto
    - titolo
    - destinatario (id dei destinatari concatenati in una stringa)

    il campo destinatario dovrebbe essere il campo chiave ma non riporta semplicemente il codice del destinatario cosi come č logico pensare ma siccome un record della tabella mail č destinato a "n" destinatari il campo č in formato testo ed ha un contenuto del genere "1;3;56;12"
    i vari codici dei destinatari sono stati concatenati in una stringa e non so a priori quanti sono
    č possibile mettere in join in qualche modo un capo del genere magari lavorando con le funzioni sulle stringhe?
    insomma vorrei ottenere qualcosa del tipo

    mail.oggetto, mail.nome, destinatari.nominativo;destinatari.nominativo;.... ...

    se puo' interessare il db č sqlserver2000

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    select *
    from destinatari d, mail m
    where m.destinatario like '%' + d.id_destinatario + '%'

    il problema č che come hai scritto tu non funziona, se hai un destinatari con 1;3;12 il destinatario 1 soddisfa la condizione sia 1;3;12 che 1;3;12

    fai una tabella destinatari_mail con
    id_destinatario
    id_mail

  3. #3
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    gia c'e' quel problemino dell'1, con qualche subquery? non si riesce a fare niente? purtroppo non posso creare tabelle per ottenere una relazione "N a N" (sarebbe la soluzione corretta)

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    un modo ci sarebbe
    se riesci a separare i valori da un carattere
    select *
    from destinatari d, mail m
    where m.destinatario like '%-' + d.id_destinatario + '-%'
    ma il campo deve contenere -1-3-12-

  5. #5
    C'č la funzione instr in sqlserver2000????

    Mi spiego

    select *
    from destinatari d, mail m
    where instr(m.destinatario,to_char(d.id_destinatario),1, 1) > 0

    Cosa ne pensi ?
    il tempo si fa i fatti suoi

  6. #6
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    Originariamente inviato da floyd
    un modo ci sarebbe
    se riesci a separare i valori da un carattere
    select *
    from destinatari d, mail m
    where m.destinatario like '%-' + d.id_destinatario + '-%'
    ma il campo deve contenere -1-3-12-
    ecco questa č un'ottima idea, chaiaramente pero devo mettere il separatore anche prima del primo carattere e dopo l'ultimo

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