|
|
|
|
|
для: Trianon
(23.03.2009 в 17:58)
| | 5+
Спасибо | |
|
|
|
|
|
|
|
для: mihdan
(23.03.2009 в 17:37)
| | ON LOCATE(CONCAT('-', themes.id, '-'), news.theme_id) | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 17:20)
| | >Вам даже в голову не пришло объяснить, что за числа хранятся в этом списке. Я тем более гадать не буду.
theme_id - поле хранит идентификаторы тем из таблицы themes
>Вам придется придумать выражение, которое вычисляется как истина, когда строка одной таблицы соответствует строке другой, и как ложь, когда не соответствует. И поставить его в раздел ON соединения таблиц.
В это-то и проблема, поэтому и обращаюсь постоянно к вам (гуру sql) за помощью | |
|
|
|
|
|
|
|
для: mihdan
(23.03.2009 в 17:16)
| | >ЗЫ: и все-таки хотелось бы узнать, возможно ли было сделать все это безе переделки структуры базы?
Вам даже в голову не пришло объяснить, что за числа хранятся в этом списке.
Я тем более гадать не буду.
Одно могу сказать - Вам придется придумать выражение, которое вычисляется как истина, когда строка одной таблицы соответствует строке другой, и как ложь, когда не соответствует. И поставить его в раздел ON соединения таблиц. | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 16:50)
| | Отмазок нет.
Переделал так, добавив таблицу связи
news_to_theme
Проект пришел на доработку, полную переделку осуществить нет возможности из-за отсутствия времени и капитала.
ЗЫ: и все-таки хотелось бы узнать, возможно ли было сделать все это безе переделки структуры базы? Например, через LIKE | |
|
|
|
|
|
|
|
для: mihdan
(23.03.2009 в 16:20)
| | >>В любом случае хранить ключи списком в поле - неправильно.
>так уж спроектировали базу в 1997 году ;(
Что ж Вы её до сих пор не переделали? :)
Основы реляционной теории БД были спроектированы Е. Коддом в 1970 году.
Так что за отмазку не канает причина не выдерживает критики. | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 15:27)
| | themes.id и в news.theme_id разные:
themes.id - int
news.theme_id - varchar
>В любом случае хранить ключи списком в поле - неправильно.
так уж спроектировали базу в 1997 году ;( | |
|
|
|
|
|
|
|
для: mihdan
(23.03.2009 в 14:55)
| | ну и кто ССЗБ?
Собственно, если в themes.id и в news.theme_id хранятся одни и те же значения (будь они сами по себе хоть фиолетовыми в крапинку) код будет работать.
Если же значения разные - Вы не имели права формулировать задачу так, как написали в исходном посте.
В любом случае хранить ключи списком в поле - неправильно. | |
|
|
|
|
|
|
|
для: Trianon
(23.03.2009 в 11:33)
| | Как всегда на высоте. Только есть одна проблема: поле theme_id - varchar(50) и данные в нем вида
То есть в нем хранятся несколько ID каждое из которых обрамлено в "-" | |
|
|
|
|
|
|
|
для: mihdan
(19.03.2009 в 14:04)
| |
SELECT t.*, MAX(n.`date`) AS md
FROM theme t
LEFT JOIN news n ON t.id = n.theme_id
GROUP BY t.id,
ORDER BY t.sort DESC,
`md` DESC;
|
| |
|
|
|
|