Ho una tabella mysql T1 composta da due colonne di INT che collega un car_id a un part_id. Un singolo car_id può avere più part_id, e lo stesso part_id può corrispondere a più di un car_id. Ad esempio,MySQL Selezione tra QUALSIASI e TUTTO
car_id part_id
1 1
1 2
1 8
2 3
3 4
4 2
4 6
...
10 1
10 2
...
20 1
20 2
20 8
per ottenere tutti i part_ids associati car_id = 1, che esegue la query,
SELECT car_id, part_id FROM T1 WHERE car_id=1
e ottenere il risultato:
car_id part_id
1 1
1 2
1 8
Ora, voglio trova tutti i rimanenti car_ids che contengono almeno (say> = 2/3) dei part_ids associati a car_id = 1. (In questo esempio, dovrei ottenere tutti i car_id che hanno almeno 2 dei part_ids 1,2 e 8 come mostrato dopo la mia query SELECT. Quindi, dovrei ottenere car_ids 1,10 e 20).
posso trovare le car_ids che contengono Tutti i part_ids 1,2, e 8 con:
SELECT car_id, part_id
FROM T1
WHERE part_id = ALL (SELECT part_id FROM T1 WHERE car_id=1). The result is car_ids 1 and 20.
posso trovare le car_ids che contengono uno dei valori 1,2, e 8 utilizzando:
SELECT car_id, part_id
FROM T1
WHERE part_id = ANY (SELECT part_id FROM T1 WHERE car_id=1). The result is car_ids 1,4,10 and 20.
Come specificare un numero tra QUALSIASI e TUTTO?
dire ciò che ci si aspetterebbe per il risultato. scrivi il risultato desiderato –