Возможно ли/экономично выполнить САМОЕ СОЕДИНЕНИЕ таблицы (для этого примера моя таблица с именем myTable
имеет два столбца pk
и) и возвращает запись, если есть только одна результирующая запись? Я имею в виду что-то вроде следующего, однако, only_one_row()
это вымышленный функция, необходимо будет заменить чем-то реальным:select self join, если только одна результирующая строка
SELECT fk
FROM myTable as t1
INNER JOIN myTable AS t2 ON t2.fk=t1.fk
WHERE t1.pk=1
AND only_one_row();
Например, если MYTABLE (идентификатор, Д) имели следующие записи, только один запись производится, и я для выбора записи:
1 1
2 1
3 2
Однако, если MYTABLE (идентификатор, Д) имели следующие записи, два «1» записи производятся, и выберите не возвращает ни одной строки:
1 1
2 1
3 2
4 1
Я мог бы использовать PHP, чтобы сделать это, но скорее просто использовать SQL, если это возможно.
Предполагая, что у меня есть соответствующие индексы в месте, есть какой-либо причине это было бы неэффективным запрос, в котором я хотел бы использовать приложение, чтобы сделать два запроса, а затем сделать заявление IF? – user1032531
Он должен рассчитать все результаты и затем отфильтровать его, поэтому эффективность будет такой же, если вы выполняете IF в приложении. – Barmar