2016-08-11 4 views
0

Ich habe eine Tabelle wie folgt aus:MySQL, wie Zeilen zu erhalten, die bestimmte Spalten haben

| ID1 | ID2 | 
------------------ 
| 1 | 1 | 
| 2 | 1 | 
| 3 | 1 | 
| 4 | 1 | 
| 5 | 1 | 
| 6 | 1 | 
| 7 | 1 | 
| 8 | 1 | 
| 9 | 1 | 
| 10 | 1 | 
| 11 | 1 | 
| 12 | 1 | 
| 13 | 1 | 
| 1 | 2 | 
| 2 | 2 | 
| 5 | 2 | 
| 1 | 4 | 
| 9 | 4 | 

Einige der ID1s haben beide 1 und 4 Werte wie folgt aus:

Wanted values

Und ich möchte die ID1s wie folgt zurückgeben:

| ID1 | 
---------- 
| 1 | 
| 9 | 

Ich habe einige grundlegende Quer versucht ies, aber ich bin nicht einmal in der Nähe .. Ich kann das nicht einmal aus der Ferne schaffen, und ich brauche eine ernsthafte Hilfe mit diesem.

+0

Ist 'ID1' soll nur einen eindeutigen Wert haben? – 1000111

+0

In diesem Fall würde 'WHERE id2 = 4' ausreichen. – Strawberry

Antwort

3

Versuchen Sie folgendes:

select id1 
from yourtable 
where id2 in (1,4) 
group by id1 
having count(distinct id2) = 2 

Demo Here

+0

Distinct ist (hoffentlich) redundant. Wenn nicht, dann hat das OP größere Probleme! – Strawberry

+0

Funktioniert wie ein Charme! Vielen Dank! – GotBatteries

1

Wenn ID1 soll nur einen eindeutigen Wert haben dann die folgende Abfrage für Sie arbeiten würde:

SELECT 
ID1 
FROM your_table 
GROUP BY ID1 
HAVING COUNT(DISTINCT ID2) > 1; 

EDIT: Mai werden Sie suchen die Einträge ID2 as 1 and 4 both haben.

SELECT 
ID1 
FROM your_table 
WHERE ID2 IN (1,4) 
GROUP BY ID1 
HAVING COUNT(DISTINCT ID2) = 2; 

Hinweis: Es wäre besser gewesen, wenn Sie klären, welche Kombination von ID1 & ID2 in der Tabelle unterstützt wird.

+0

Diese Antwort sollte korrekt sein, warum hier runter? – Blank

+0

Auf den ersten Blick dachte ich, ID1 hätte nur einen eindeutigen Wert. Die erste Antwort basiert auf dieser Annahme. Es stimmte nicht wirklich mit der tatsächlichen Anforderung überein. Das könnte der Grund für die Ablehnung sein. @JPG – 1000111

+0

@ 1000111 Ihr Schnitt scheint korrekt zu sein, aber jemand anderes hat Sie dazu geschlagen. Ich gebe dir einen "Daumen hoch" -Kredit dafür als Dankeschön! – GotBatteries

Verwandte Themen