|
Тема |
WHERE ALL(story_status_sid)=2...MySQL въпрос. |
|
Автор |
Dakota (erotoman) |
|
Публикувано | 07.02.04 19:04 |
|
|
Имам си таблица story_department:
CREATE TABLE `story_department` (
`story_sid` bigint(20) unsigned NOT NULL default '0',
`department_sid` mediumint(8) unsigned NOT NULL default '0',
`story_status_sid` tinyint(3) unsigned NOT NULL default '1',
UNIQUE KEY `story_sid` (`story_sid`,`department_sid`),
KEY `story_status_sid` (`story_status_sid`)
) TYPE=MyISAM
Тя ми се явява връзка между таблицата story и таблицата department, като освен връзка, съдържа в себе си story_status_sid, което е 1 или 2, контекстно на story и department.
Да речем, че в таблицата имам следните данни:
story_sid | department_sid | story_status_sid
1 1 1
1 2 1
1 3 2
2 2 2
2 3 2
...
Трябва ми такава заявка, която да ми изкара всички distinct story_sid, за които всички story_status_sid=2. Т.е. в дадения пример да ми изкара само story_sid=2.
Измислих някакъв hack с:
...GROUP BY
s.story_sid
HAVING
AVG(story_status_sid)=2
Обаче това не ми изглежда никак добре. Има ли по-чисто решение?
Версията ми е 4.0.17.
Everything louder than everything else...
|
| |
|
|
|