Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Query su due tabelle

  1. #1

    Query su due tabelle

    Chiedo un consiglio per estrare due record,
    da due tabelle distinte ma nello stesso DB MySQL.

    SELECT tab1.Anome, tab2.Bnome FROM
    tab1, tab2 WHERE Anome = "luciano" OR Bnome = "luciano"

    Come sopra purtroppo non fa quello di cui ho bisogno, ho pravato con UNION ma nulla.

    La logica che voglio ottenere, è un cotrollo che devo assegnare sulle due tabelle,
    per verificare se "Luciano" è presente su entrambe o solo su una delle due tabelle.

    Servono quindi due variabile che restituiscano il valore rispettivo delle due tabelle.



    Grazie
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  2. #2
    codice:
    SELECT MAX(intab1), max(intab2) FROM
    (
    SELECT COUNT(*) AS intab1, 0 as intab2 FROM tab1 WHERE Anome = "luciano"
    UNION
    SELECT 0 as intab1, COUNT(*) AS intab2 FROM tab2 WHERE Bnome = "luciano"
    ) tres

  3. #3
    Grazie della risposta, ti chiedo gentilmente questo chiarimento:

    Nella query di esempio che mi hai scritto, trovo intab1 e intab2 tu indichi le due tabelle da cui estraggo i record ?

    tab1 e tab2 come devo considerarle comparandole alle originali su cui lavoro?

    I nomi delle due tabelle che io ho nel mio DB sono blog e gallery,
    mentre i recordo che devo estrarre dalle relative tabelle sono bAutore e gFoto.
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  4. #4
    1. si
    2. non so, tu avevi fatto un esempio con tab1 e tab2, il ragionamento è lo stesso...

  5. #5
    Ho fatto diversi tentativi usando il tuo esempio, ma i valori che ottengo non mi permettono di ottenere il risultato che vorrei, ho provato con query annidate, union ma sono sempre da capo.

    TI faccio vedere le due query elementari che utilizzo per gestire i due valori che mi servono:

    Codice PHP:
    SELECT FROM blog WHERE bAutorepippo

    SELECT 
    FROM foto WHERE fAutorepippo

    blog 
    bAutore
    foto 
    fAutore

    If blog <> "" Then SEGNO COME ATTIVO
    IF foto <> "" Thne SEGNO COME ATTIVO 
    Come vedi le due variabili blog e foto mi servono come controllo su due link
    che avvisano se esiste un blog, una fotogalleri oppure entrambe, oppure infine l'assenza.

    Vorrei tanto eseguire queste operazioni riducendo le query ad una sola unica.
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  6. #6
    io la query te l'ho scritta....

  7. #7
    Magari potessi applicarla, mi sa che interpreto male le tab1, tab2, intab1... di esempio che hai usato, i risultati che restiruiscono le variabili blog e fono non sono coerenti.

    Se desideri, avrei bisogno che la replicassi con i nomi delle tabelle e dei campi che ho usato io nell'ultima semplificata che ho postato, forse riuscirò a trovarci il filo logico.

    Grazie
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  8. #8
    tab1 e tab2 sono le tabelle, intab21 e intab2 sono i risultati. non vedo la difficoltà...

  9. #9
    Considerando le due tabelle BLOG e FOTO
    dove all'interno ci sono rispettivamente bAutore e fAutore da estrarre in caso di presenza,
    ho usato la query come sotto.



    SELECT MAX(fAutore), max(bAutore) FROM
    (
    SELECT COUNT(*) AS fAutore, 0 as bAutore FROM blogs WHERE bAutore="pippo"
    UNION
    SELECT 0 as fAutore, COUNT(*) AS bAutore FROM foto WHERE fAutore= "pippo"
    ) tres


    Estraggo i risultati caricando le variabili foto e blog usando lo 0,
    mi restituisce foto 1 e blog 1 anche se solo foto è presente,
    non distingue singolarmente i controlli in entrambe le tabelle.

    Sbaglio?
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  10. #10
    1. io scriverei

    SELECT MAX(bAutore), max(fAutore) FROM
    (
    SELECT COUNT(*) AS bAutore, 0 as fAutore FROM blogs WHERE bAutore="pippo"
    UNION
    SELECT 0 as bAutore, COUNT(*) AS fAutore FROM foto WHERE fAutore= "pippo"
    ) tres


    2. se esegui le due subquery singolarmente, ti danno il risultato giusto?

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