Консультация № 171075
05.08.2009, 13:31
0.00 руб.
0 4 2
Здравствуйте.
Есть три таблицы:

1.Табл. (subscr_name) в ней хранятся названия подписок:

id_subscr | name_sub

1| новости
2| предложения
3| текущие акции

2. Табл. ( users) в ней хранятся контактные данные пользователей
idta | login | email_for_subscr

1| ivan | ivan @com.ua
2| petya | petya @com.ua
3| alex | alex @com.ua

3.Табл. (themssubscr) тут указано кто на ,что подписан
id_sub | id_name_sub ( из таблицы subscr_name код подписки : новости -1 , предложения-2 , текущие акции-3) | idta_login(id логина который подписан)

1| 1 | 2
2| 1 | 1
3|3 | 3
4| 2 | 3

У меня вопрос : Скажите пожалуйста какие должны быть запросы sql (установлена mysql 5.0.51a , apache) ,что бы когда пользователь заходит под своим логином он видел таблицу данных где указано название подписки, email для подписки и подписан он на неё или нет ? Можно два запроса ,сначало показать на что подписан ,потом на, что не подписан.
Спасибо.



Обсуждение

Неизвестный
06.08.2009, 08:13
общий
это ответ
Здравствуйте, Dima1967.

select * from subscr_name s
inner join themssubscr t on s.id_subscr=t.id_name_sub
where idta_login=(id логина)
5
Неизвестный
06.08.2009, 10:41
общий
Этот запрос нормально выводит подписки на которые пользователь подписан.
Скажите пожалуйста , а как вывести подписки (может ещё одним отдельным запросом ) на которые пользователь НЕ подписан ? Т.е. подписок которых нет в таблице themssubscr с логином этого пользователя? Спасибо за запрос.
Неизвестный
06.08.2009, 11:11
общий
это ответ
Здравствуйте, Dima1967.

Вот:

$res=mysql_query("select s.name_sub, u.email_for_subscr,t.idta_login from (subscr_name s, users u) left join themssubscr t on t.id_name_sub=s.id_subscr and t.idta_login=u.idta where u.login='".$LoggedIn."' ");
while($row=mysql_fetch_row()){
if($row[2]==''){
$subscribed='NO';
}else{
$subscribed='YES';
};

...........................показать что-нибудь

};
5
Большое спасибо.
Неизвестный
07.08.2009, 09:17
общий
Dima1967:
select * from subscr_name s
inner join themssubscr t on s.id_subscr=t.id_name_sub
where idta_login=not in (id логина)

данный запрос выводит не подписанные рассылки
Форма ответа