
Originariamente inviata da
Van83
Ciao a tutti,
ho un insolito problema con una query su due tabelle e con gli operatori AND ed OR.
Una tabella mi serve per ottenere un id e l'altra per la visualizzazione dei dati.
La query incriminata è questa:
Codice PHP:
SELECT * FROM
tbl1
INNER JOIN
tbl2
ON
tbl2.post_id = tbl1.ID
WHERE
(tbl2.meta_key = "wpcf-livelloesperienza" AND tbl2.meta_value LIKE "%Senior%")
AND
(tbl2.meta_key = "wpcf-areafunzjob" AND tbl2.meta_value LIKE "%sales-marketing%")
GROUP BY tbl2.post_id
HAVING tbl2.post_id = tbl1.ID
La query, così fatta restituisce null, o 0 righe, mentre se metto un OR tra un blocco e l'altro () , ottengo i risultati corretti, con le righe doppie del tipo:
sia le righe corrette, che le altre che hanno almeno un blocco vero (come da algoritmo OR).
La query dovrebbe restituire 3 risultati.
Dite che mi conviene dividerla in 2 query ? Prima la ricerca sulla tabella 2 e poi quella sulla tabella 1 ?
Potrebbe essere un problema della versione di Mysql ??
Vi ringrazio.