Помогите составить sql-запрос
73 сообщения
#14 лет назад
Имеется две таблицы1 таблица вопросов от пользователя другому пользователю
`id_q` int(11) NOT NULL AUTO_INCREMENT,
`from` varchar(40) NOT NULL,
`to` varchar(40) NOT NULL,
`vopros` varchar(255) NOT NULL,
`anonim` enum('0','1'

`answed` enum('0','1'

`timestamp` int(10) NOT NULL,
2 таблица ответов на вопросы
`id_ans` int(11) NOT NULL AUTO_INCREMENT,
`id_q_fk` int(11) NOT NULL,
`who_ans` varchar(40) NOT NULL,
`ans_text` text NOT NULL,
`timestamp` int(11) NOT NULL,
Нужно вывести список вопросов с ответами на них, в этом проблемы нет.. Но нужно вывести сразу инфо по обоим пользователям из базы, кто задал вопрос и кто ответил..
Аналог - сайт formspring.me
Вот мой запрос:
SELECT a.ans_text, a.timestamp, q.from, q.vopros, q.anonim, f.img FROM ТАБЛИЦА_ВОПРОСОВ as q, ТАБЛИЦА_ОТВЕТОВ as a, ТАБЛИЦА_АВАТАРКИ_ЮЗЕРА as f
WHERE ((q.id_q = a.id_q_fk) AND (a.who_ans = 'юзер чьи ответы смотрим'

но получается у меня извлеч инфо только одного юзера либо чей вопрос либо чей ответ..
С джоинами не дружу, может с помощью него как то можно?
2817 сообщений
#14 лет назад
Частенько у вас проблемы с SQL, тем кто помогает решать такие задачки на форуме - дарите символических 5 вмз? Это же, наверное, с проекта, за который, я так понимаю, вам платят, было бы справедливо делится с помощниками 

Я не любопытный, просто интересно

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

73 сообщения
#14 лет назад
Учусь же я))) но иногда голову не хочется ломать можно и спросить у людей знающих, на счет проекта, проект свой, социалка))
102 сообщения
#14 лет назад
Лучше используй два три простых запроса, вместо одного сложного. Цитата ("speedi"):
SELECT DISTINCT q.*, a.*, u1.*, u2.*
FROM questions_table AS q
LEFT JOIN answers_table AS a ON q.id_q = a.id_q_fk
LEFT JOIN users_table AS u1 ON q.from = u1.id
LEFT JOIN users_table AS u2 ON q.to = u2.id
LIMIT 100
с джоинами не дружу
Зря. Обрати внимание на последние два джоина, используется одна и та-же таблица с разными именами
73 сообщения
#14 лет назад
Вот это дааа.. спасибо)) Надо будет подружиться, только дистинкт в этом случае зачем? дубликатов вроде быть не должно и без нее работает, и она я читал много ресурсов жрет.