Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ένα πίνακα που συσχετίζει 3 ids, clothes, shoes, customers. 

Έχω ενα query που δουλέυει κανονικά  

select clothes, shoes from table where customers = 101

(shoes/clothes του customer 101). Αυτό δίνει το ας το πούμε SET A

clothes - shoes (SET A)
1          6
33         12
24         2

Και ένα αλλο query που δουλέυει κανονικά 

 

select clothes ,shoes from table 
where customers in 
(select customers from table where clothes = 1 and customers <> 101 )

(clothes/shoes όλων των άλλων customers εκτός του 101, και με συγκεκριμένο clothes) .  Αυτό δίνει το ας το πούμε SET B

clothes - shoes (SET B)
1          14
26         6
24         12
null       1
null       2

Τώρα θέλω να συνδυάσω αυτα τα δύο ως εξής : τα clothes/shoes που είναι στο SET A και δεν είναι στο SET B.  Δηλαδή (παράδειγμα) 

select from SET A where NOT IN SET B

το οποίο πρέπει να δώσει μόνο το clothes 33 πίσω. 

 

Ένα query που μου μοιάζει λογικό είναι το 

select clothes, shoes from table where  customers = 101 
and
(clothes,shoes) not in 
 (   
   select clothes,shoes from
   table where customers in 
   (select  customers   from table where clothes = 1 and customers <> 101 ) 
 ) ;

αλλά το πρόβλημα ειναι οτι αυτό δεν δίνει τίποτα πίσω.

 

Τι φταίει και πως μπορώ να το φτιάξω ; 

 

Ευχαριστώ

Δημοσ. (επεξεργασμένο)
(clothes,shoes) not in 

Δεν βρήκα αν η PostGre υποστηρίζει πολλαπλά fields σε IN αλλά σε άλλες υλοποιήσεις αυτό δεν ισχύει...

δοκίμασε αυτό (προσάρμοσε το σε PostGre)

(clothes+"|"+shoes) not in 
 (   
   select clothes+"|"+shoes from
   table where customers in 

σε MySQL είναι 

SELECT CONCAT(`clothes`,`shoes`) AS XX,E,NAME from Table WHERE CONCAT(`clothes`,`shoes`)  NOT IN (.....

 

Επεξ/σία από masteripper
Δημοσ.

Η προσωπική μου προσέγγιση σε τέτοια θέματα είναι πάντα:

Άσε τα set ABC και εξέφρασε χωρίς κανένα απολύτως παράδειγμα τι ακριβώς αποτελέσματα θέλεις να πάρεις, στα ελληνικά. Αν δε μπορείς να το κάνεις αυτό, στην καλύτερη περίπτωση θα φτάσεις μέσω Ιταλίας και στη χειρότερη δε θα φτάσεις ποτέ.

Αυτή τη στιγμή είσαι μέχρι τα μπούνια μέσα σε XY problem: έχεις χάσει το δάσος και προσπαθείς να βρεις τη λύση κοιτώντας τα δέντρα, συνδυάζοντας queries και τέτοια.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...