Задавайте вопросы, мы ответим
Вы не зашли.
Имею две таблицы:
tab1
tab2
В tab1 хранится профиль пользователя, она содержет поля: id, textinfo, user_name, ban
В tab2 хранятся действия пользователя за каждый день, она содержет поля: id, data, text
В таблице tab1 и tab2 id пользователей соответствуют.
Мне нужно выбрать всех пользователей из tab1 и + одновременно, синхронно получать действия выбранного пользователя за сегодня из tab2, если они есть. Где data - сегодняшняя дата.
Вот я пытаюсь так:
mysql_query(&mysql,"SELECT tab1.id, tab1.textinfo, tab1.user_name, tab2.text FROM tab1, tab2 WHERE tab1.ban = '0' and tab2.data = 8 and tab1.id = tab2.id");
Проблема в том, что если в tab2 нету действий за сегодня, то выборка из tab1 не происходит... как быть?
Пример:
tab1:
0|ertwere|nick1|0|
1|ghyjfhg|nick2|1|
2|xzczxe|nick3|0|
3|werwe|nick4|0|
tab2:
0|7|qqqqqqq|
0|8|wwwwww|
3|6|eeeeeee|
3|8|rrrrrrrr|
1|3|rrrrpppppp|
Сегодня 8-ое число.
В итоге нужно чтобы получилось:
0|ertwere|nick1|wwwwww|
1|ghyjfhg|nick2||
2|xzczxe|nick3||
3|werwe|nick4|rrrrrrrr|
Я так понимаю проблема в tab1.id = tab2.id. Мне нужно чтобы mysql_fetch_row возвращал информацию из обеих таблиц об одном пользователе... Т.е. наверно нужно как-то указать что tab1.ban = '0' обязательное условие, а tab2.data = 8 и tab1.id = tab2.id - нет...
Помогите решить задачку, спасибо
Отредактированно gif-t (08.08.2011 02:16:39)
Неактивен
Неактивен
Спасибо, не думал что всё так намного сложне
Неактивен
А подскажите как модифицировать этот запрос, если мне нужно вынуть соответствующие значения из второй таблице, только за 2 даты из двух текстовых полей (text1 из строки за 8-ое и text2 из строки за 9-ое). Вот я попробовал составить, но не работает:
SELECT tab1.id, tab1.textinfo, tab1.user_name, t2.`text1` t2.`text2` FROM tab1 LEFT JOIN (SELECT tab2.id, tab2.`text1` FROM tab2 WHERE tab2.data = 8 ) t2 ON tab1.id = t2.id AND LEFT JOIN (SELECT tab2.id, tab2.`text2` FROM tab2 WHERE tab2.data = 9 ) t2 ON tab1.id = t2.id WHERE tab1.ban = '0';
Спасибо
Неактивен
Неактивен
Ага, большое спасибо
Неактивен