Visualizzazione dei risultati da 1 a 10 su 10

Discussione: query con JOIN

  1. #1
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    query con JOIN

    ciao a tutti, probabilmente sono fuso, ma sta query non mi viene...

    non da errore ma non ho il risultato che cerco.

    codice:
    SELECT customers.id,customers.first_name,customers.email  FROM customers LEFT OUTER JOIN orders ON customers.id=orders.customer_id  WHERE customers.custfields LIKE '%"&cs1&"%' OR customers.custfields LIKE '%"&cs2&"%' AND (orders.billing_notes NOT LIKE '%-" & cs1 & "-%' OR orders.billing_notes NOT LIKE '%-" & cs2 & "-%' OR orders.shipping_notes NOT LIKE '%-" & cs1 & "-%' OR orders.shipping_notes NOT LIKE '%-" & cs2 & "-%')
    in sostanza ho 2 tabelle (customers e orders) quello che non funziona è la condizione dopo AND.

    come risultato devo ottenere tutti i campi dentro customers a patto che nella riga corrispondente dentro la tab orders NON ci sia il pattern indicato (cs1 o cs2) nei campi indicati.
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  2. #2
    così è più leggibile

    codice:
    SELECT 
       customers.id,
       customers.first_name,
       customers.email  
    FROM 
       customers LEFT OUTER JOIN orders ON customers.id=orders.customer_id  
    WHERE 
             customers.custfields LIKE '%" & cs1 & "%' 
        OR customers.custfields LIKE '%" & cs2 & "%' 
       AND (     orders.billing_notes  NOT LIKE '%-" & cs1 & "-%' 
               OR orders.billing_notes  NOT LIKE '%-" & cs2 & "-%' 
               OR orders.shipping_notes NOT LIKE '%-" & cs1 & "-%' 
               OR orders.shipping_notes NOT LIKE '%-" & cs2 & "-%')
    poi *subito* dopo averla composta, fatti stampare la query e postala / controllala / prova ad eseguirla dentro access

  3. #3
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    scusa, uso sql server.

    a parte questo, sto pensando che potrei semplificare la query in un modo semplice...

    mi basta la prima parte:


    codice:
    SELECT  customers.id,customers.first_name,customers.email  FROM customers WHERE  customers.custfields LIKE '%"&cs1&"%' OR customers.custfields LIKE '%"&cs2&"%'
    con l'aggiunta però che il customers.id NON sia presente nella tabella orders. (il campo chiave è orders.customer_id )
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  4. #4

  5. #5
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da optime
    quindi sei a posto?
    no
    perche non ho idea di come fare l'aggiunta... o se cè un modo in sql più performante...




    per esempio, se faccio questa query:

    codice:
    SELECT customers.id,customers.first_name,customers.email  FROM customers INNER JOIN orders ON customers.id=orders.customer_id  WHERE customers.custfields LIKE '%"&cs1&"%' OR customers.custfields LIKE '%"&cs2&"%'
    mi da l'unico risultato che NON dovrebbe darmi... giustamente perchè è l'unico presente in entrambe le tabelle. invece vorrei estrarre i record solo se sono presenti solo nella tabellacustomers e non nella orders...

    (mi stò incasinando...)
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  6. #6
    codice:
    SELECT
       elenco_campi
    FROM
       clienti LEFT JOIN ordini
       ON clienti.id_cliente=ordini.id_cliente
    WHERE
       ordini.id_cliente IS NULL
    that easy!

  7. #7
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da optime
    codice:
    SELECT
       elenco_campi
    FROM
       clienti LEFT JOIN ordini
       ON clienti.id_cliente=ordini.id_cliente
    WHERE
       ordini.id_cliente IS NULL
    that easy!


    grazie!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  8. #8
    guarda in firma come ringraziare!

  9. #9
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da optime
    guarda in firma come ringraziare!
    l'ultimo giretto che ho fatto l'ho cercata... ma non ne avevano con quel soggetto...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  10. #10
    Originariamente inviato da yro
    l'ultimo giretto che ho fatto l'ho cercata... ma non ne avevano con quel soggetto...
    tienilo sempre a mente allora

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.