Выбор информации в MySQL

#php #mysql

#php #mysql

Вопрос:

я хочу выбрать все, где завершается моя учетная запись

но я получаю эту ошибку

DBD ::mysql:: st выполнить не удалось: Операнд должен содержать 1 столбец (ы)

 USER

ID      ACCOUNT
1       JOHN
2       JANE
3       JET
4       KAT
5       YMT


FRIENDS

ID       ACCOUNT  FRIEND   
1        JOHN      JET
2        JET       JANA
3        KAT       JOHN


NOTIC

ID       ACCOUNT
1        JOHN

SELECT count(*) FROM notic WHERE account IN (SELECT account, friend FROM friends WHERE account = 'JOHN'  OR friend = 'JOHN'
 

Комментарии:

1. Измените SELECT account, friend на просто SELECT account .

2. Или, может быть, это должно быть ОБЪЕДИНЕНИЕ, один запрос возвращает account , другой возвращает friend .

3. @Barmar я пробовал это и возвращает только с 1 номера, но я хочу проверить все номера в ДРУЗЬЯХ

4. я не пробовал это с union, пожалуйста, поделитесь со мной тем, как я могу сделать это в union

Ответ №1:

Вы можете присоединиться к friends таблице на notic.account = friend.account или notic.account = friend.friend

Что-то вроде этого

 select count(*) from notic n join friends f on n.account = f.account || n.account = f.friend where n.account = 'JOHN';
 

Вот скрипка, показывающая, что она работает

Комментарии:

1. Это умножит количество на количество записей, сопоставленных в friends . Попробуйте COUNT(DISTINCT n.id)

2. Также необходимо WHERE n.account = 'JOHN'