2013-08-01 3 views
0

У меня 2 Mysql таблицы:MYSQL | Запрос из двух таблиц 2

A (Пользователи таблица):

имя пользователя ID номер

1 User1 1 
2 User2 1 
3 User3 1 

B (Заблокированные пользователи):

id username 
1 User3 

Мой запрос здесь (я хотел бы получить User1 и User2, поскольку User3 находится в блоке):

SELECT A.id, A.username FROM `table1` A, `table2` B 
    WHERE A.roomid = 1 AND A.username != B.username 

Но это неправильный запрос. Спасибо!

ответ

0

Вам нужно либо join два таблиц А & B, как

SELECT A.id, A.username FROM `table1` A 
JOIN `table2` as B ON `table1`.id = `table2`.id 
WHERE A.room = 1 AND A.username != B.username 

ИЛИ ваше имя столбца room не roomid как

SELECT A.id, A.username FROM `table1` A, `table2` B 
WHERE A.room = 1 AND A.username != B.username 
0
SELECT A.id, A.username,B.id,B.username FROM `table1` A, `table2` B 
WHERE A.roomid = 1 AND A.username != B.username 
0

В таблице А, что среднее по ID ? это идентификатор имени пользователя?
В таблице B, что означает идентификатор?

вы должны использовать соединение sql, чтобы получить ожидающий результат. но для этого вам нужен общий ключ в обеих таблицах. Согласно вашему примеру таблицы, я считаю, что идентификатор не является общим ключом, и вы просто используете его. но если я ошибаюсь, вы можете присоединиться к двум таблицам, используя внутреннее соединение, получая идентификатор в качестве общего ключа.

Смежные вопросы