Как логически да направя заявка между 2 таблици

vinsbg

Registered
Здравейте,

първо ще обясня , какво правя и дали е логически правилно така.
Имам една тикет система за вътрешна употреба от 2-3ма човека. Това, което имам до момента е пускане на тикет и отговаряне на него.
Сега искам да добавя на главната страница последно кой е отговорил на него и на коя дата.

имам 2 таблици:

Таблица tickets, която държи тикетите - id, title, body, author, date, answer_date, answer_author

Таблица ticket_answers, която държи отговорите към тикета - ticket_answer_id, ticket_answer_author, ticket_answer_date, ticket_id ( ticket_id е тикета към който е отговора ).

Въпроса ми е как да направя заявката, за да показвам тикета, дата на пускане, автор на тикета, последен отговор, автор на последния отговор от двете таблици?

И изобщо логически дали е правилно така или авторите и на тикетите и на отговорите по-добре да се извядят в трета отделна таблица?
 
Защо ти се повтарят полеатата?
tickets: id, title, body, author, date, answer_date, answer_author

answers: ticket_answer_id, ticket_answer_author, ticket_answer_date, ticket_id
 
anonimen каза:
Защо ти се повтарят полеатата?
tickets: id, title, body, author, date, answer_date, answer_author

answers: ticket_answer_id, ticket_answer_author, ticket_answer_date, ticket_id
Грешката е моя в tickets не е answer_author, а е ticket_last_replay и ticket_last_replay
Таблицити изглеждат точно така:
Tickets
Код:
        ticket_id
	ticket_title
	ticket_body
	ticket_date_add
        ticket_author
	ticket_last_replay
	ticket_last_time_replay
	ticket_priority
И ticket_answers
Код:
ticket_answer_id
ticket_answer_body
ticket_answer_author
ticket_answer_date
ticket_id
Та тук ticket_last_replay = ticket_answer_author и ticket_last_time_replay = ticket_answer_date
 
[sql]SELECT tickets.ticket_title, ticket_answers.ticket_answer_author, ticket_answers.ticket_answer_date
FROM tickets, ticket_answers
WHERE tickets.id = ticket_answers.ticket_id
AND ticket_answers.id IN
(SELECT MAX(id) FROM ticket_answers GROUP BY ticket_id)
[/sql]

Ще ти изведе всички ticket-и, които имат отговор + датата и автора на последния отговор.
 
SVTerziev каза:
[sql]SELECT tickets.ticket_title, ticket_answers.ticket_answer_author, ticket_answers.ticket_answer_date
FROM tickets, ticket_answers
WHERE tickets.id = ticket_answers.ticket_id
AND ticket_answers.id IN
(SELECT MAX(id) FROM ticket_answers GROUP BY ticket_id)
[/sql]

Ще ти изведе всички ticket-и, които имат отговор + датата и автора на последния отговор.

Благодаря :?:
 

Back
Горе