Edited (richtige Antwort):
Was ich nehme an, Ihr Problem ist:
Sie einen Wert haben. Stellen wir uns vor, es wäre "testValue". Jetzt möchten Sie die ID dieses Wertes erhalten und alle anderen Datensätze mit derselben ID finden. Was gelöscht werden muss, ist, dass "ID" nicht der Primärschlüssel ist und nicht eindeutig ist.
Sie sollten diese in der Lage sein, zu lösen, indem eine einfache Selbst verbinden:
select t.* from Table t right join Table tt on tt.id = t.id where tt.value = 'someValue';
Also wegen der Verbindung werden Sie ein Ergebnis bekommen, die einfach auf den Tisch zurück. Mit der where-Klausel verkleinern Sie das Ergebnis auf Ihren Wert. Sie sollten den Satz von IDs erhalten.
Alte Antwort:
Diese den Trick tun sollten:
select * from Table a inner join Table2 b on a.id = b.id where b.value = 'someValue';
Sie erwähnt nur eine Tabelle in Ihrer Frage. Ich denke, das muss ein Fehler sein. Wenn nicht, müssen Sie nur die Table2
in meiner Abfrage ändern. Aber das würde keinen Sinn hat, wie Sie eine einfache Abfrage tun könnten, auch:
select * from Table where value = 'someValue';
dies das Ergebnis der ersten Abfrage mit einem selbst würde kommen.
ersetzen, dass '=' mit einem 'IN' – Lamak
Warum nicht direkt verwenden' wobei Wert = ‚someValue'' statt subquery –
Ich kann die Unterabfrage mit dieser Ursache ersetzen i viele Register mit dem haben könnte gleiche ID – Tincho