2016-10-13 2 views
0

Я пытаюсь сделать простой чат с базой данных. Так что я создал 2 таблицы:SQL-имя вместо ID во многих отношениях.

  1. Users (ID (PK), имя, пароль)
  2. Messages (ID (PK), SenderId (FK от пользователей), recipientID (FK от пользователей)), текст

Я действительно noob в SQL, и я просто не могу написать запрос, который вернет таблицу Messages, но с нормальными именами вместо senderID и идентификатором получателя. Также я не нашел примеров, где 1 таблица использует дважды, поэтому JOIN не работал для меня, или я использовал его неправильно.

+1

, что ваш вопрос здесь? –

+1

Вы получили свой ответ, но вы могли бы получить ответ с немного большим поиском ... http://stackoverflow.com/questions/32702120/how-to-join-the-same-table-multiple-times –

ответ

2
SELECT US.Name as SenderName, UR.Name as RecipientName, M.text 
FROM Messages M JOIN Users US ON US.ID = M.senderID 
    JOIN Users UR ON UR.ID = M.recipientID 
+0

Omg, просто присоединяйтесь дважды, большое спасибо, я epic nooobb =) – BeygelTheP

0

Не уверен, что, если я правильно понимаю ваш вопрос, или какой БД вы используете, но это то, что я думаю, что вы ищете:

SELECT Messages.text, Users.name 
FROM Messages 
inner JOIN Users 
ON Messages.sender_id = Users.id 
Смежные вопросы