Каков наилучший способ сделать запрос к таблице, а затем передать результат другому запросу в другой таблице, но сохранить результаты первого запроса только в том случае, если второй запрос возвращает ноль или пуст?
я пытаюсь SELECT id, name, email FROM ACCOUNT WHERE email IN ('[email protected]', '[email protected]')
Затем возьмите возвращенные идентификаторы и SELECT memberId=1 and member2Id = (the returned id) FROM FAMILY IF NULL
, Если его значение NULL, верните данные в первом запросе или удалите этот элемент из результатов первого запроса.
Какой самый эффективный способ сделать это? Первоначально я собирался сделать первый запрос. Затем передайте полученные идентификаторы в массив. Затем выполните итерацию по массиву, передавая идентификаторы во втором запросе, и если он вернет не ноль, то я удалю идентификатор из массива. Однако это кажется крайне неэффективным, поскольку я буду выполнять два отдельных запроса. Я новичок в SQL, поэтому, если есть лучший способ сделать это, я хотел бы узнать, спасибо!
я считать то, о чем вы говорите, но вам может понадобиться расширить свое объяснение:
SELECT id, name, email FROM ACCOUNT
WHERE email IN ('[email protected]', '[email protected]')
AND id not in (select member2Id from FAMILY where memberId=1)
Других решений пока нет …