Я использую такой запрос в моей базе данных postgres:
SELECT TableA.id FROM TableA , TableB WHERE TableA.id = 100;
Каждый TableA.id уникален (это автоинкремент), я получаю более 1 результата. Я что-то здесь упускаю?
Вам необходимо присоединиться:
SELECT TableA.ID from TableA INNER JOIN TableB ON TableB.TableAID = TableA.ID WHERE TableA.ID = 100
Вы делаете перекрестное соединение - фактически каждая строка в TableB против единственной строки в TableA. Если вы также выберете что-то из TableB, это будет более очевидно :) Тот факт, что вы в настоящее время ничего не выбираете из TableB, не мешает парам (TableA, TableB) быть результатом объединения перед проекцией .
Вы получаете одну строку из TableA, но все строки из TableB. Возможно, вы имели в виду:
TableA
TableB
SELECT TableA.id FROM TableA, TableB WHERE TableA.id=TableB.id AND TableA.id = 100
какова связь между таблицей A и таблицей B?
вам может потребоваться сделать что-то подобное
Где TableA.id = 100 И TableB.TableA_Id = TableA.id
Требуется объединение перед предложением where:
INNER JOIN TableB ON TableA.Id = TableB.Id