Получение информации из 2 таблиц - PullRequest
0 голосов
/ 05 января 2010

Возникли проблемы с некоторыми операторами select.

У меня есть 2 таблицы. sms_log и sms_messages.

sms_log:

id
message_id
user_id

sms_messages:

message_id
admin_id
message
date_sent
date_delivered

Я хочу получить данные sms_message, где sms_log.user_id = $ id

Как мне это сделать, я немного застрял. Кроме того, как мне получить к нему доступ через php, точно так же, как стандартный запрос, или с именем таблицы перед ячейкой:

    `
echo $myrow['sms_messages.message'];

OR

echo $myrow['message'];

Спасибо!

Ответы [ 3 ]

1 голос
/ 05 января 2010
select m.message as message
, m.date_sent as date_sent
FROM sms_messages as m
LEFT JOIN sms_log as l
ON m.message_id = l.message_id
WHERE l.user_id = $id

Вы по-прежнему сможете получить доступ к массиву, как и следовало ожидать:

echo $arr['message'] ' sent on ' $arr['date_sent'] ;
1 голос
/ 05 января 2010

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

Есть ли какие-либо первичные ключи, объявленные для таблиц?какие-то уникальные индексы?

Это ваш собственный дизайн данных или кто-то еще?Какие типы данных для столбцов?Какую СУБД вы используете?Заполнены ли какие-либо столбцы из генератора последовательностей или автоинкремента mysql?

Что на самом деле означают эти таблицы (ОК, сообщения SMS - я понимаю, но они только приходят?.

1 голос
/ 05 января 2010

Сначала вам нужно выполнить внутреннее соединение таблиц SMS_MESSAGe и SMS_LOG в messageId. Это будет выглядеть примерно так:

SELECT m.Message 
FROM sms_Messages me
INNER JOIN sms_Log l ON l.Message_Id = m.Message_Id
Where l.user_Id = $id;

На этом этапе в вашей переменной myrow вы получите доступ к сообщению, например:

echo $myrow['message'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...