![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
Есть 2 таблицы:
tab1
id name
--------
1 player
2 gamer
3 player
4 player
5 gamer
6 user
tab2
bid name
--------
1 user
2 user
3 player
4 gamer
5 gamer
6 player
Необходимо из 2-х таблицы получить общее кол-во каждого из значений name и отсортировать по кол-ву значений, то есть нужно получилось следующее:
player 5
gamer 4
user 3
Для одной таблицы я делаю так:
SELECT count(*), name FROM tab1 GROUP BY name ORDER BY count(*) DESC LIMIT 3
Как это применить для двух таблиц?
Неактивен

Неактивен
Благодарю!
Неактивен
Возникла ещё одна проблемка. Есть 2 таблицы:
tab1
bid name
--------
1 player
2 gamer
3 player
4 player
5 gamer
6 user
tab2
bhid name total
--------------
1 user 5
2 user 3
3 player 7
4 gamer 7
5 gamer 2
6 player 1
Во второй таблице имеется поле, которое в первой таблице отсутствует.
Необходимо сделать селект из двух таблицы, делаю так:
SELECT * FROM (
(SELECT bid AS id, name FROM tab1) UNION ALL
(SELECT bhid AS id, name FROM tab2)) T ORDER BY name
Но ещё требуется, чтобы селектило и 3-е поле из tab2, а так как в tab1 такого нет, то значение этого поля для tab1 было NULL.
Как такое можно сделать?
Неактивен

Неактивен
Ок, спасибо! ![]()
Неактивен
Помогите, составить запрос третий день листаю форум ничего подобного не нашел. Постю здесь, так как этот пост тоже про ставки.
Итак.
Имеется две таблицы:
TABLE bids
+------+--------+
| bidder| bid |
+------+--------+
| 1 | 5.0000 |
| 3 | 10.0000 |
| 1 | 15.0000 |
| 1 | 20.0000 |
| 3 | 50.0000 |
| 1 | 60.0000 |
+-------+-------+
и
TABLE users
+----+---------+
| id | nick |
+----+---------+
| 1 | antony |
| 2 | evgeny |
| 3 | vas9 |
+----+---------+
Имеется такой запрос:
SELECT bidder, bid, u.nick FROM bids
LEFT JOIN users u ON (u.id = b.bidder);
Что в него нужно добавить чтоб получить nick сделавший максимальный bid, т.е что запрос
выдал следущее:
+--------+---------+
| nick | bid |
+--------+---------+
| antony | 60.0000 |
+--------+---------+
Неактивен

ORDER BY bid DESC LIMIT 1
Неактивен
paulus
Спасибо. Решение хорошее, но не для моего случая.
а можно тоже самое сделать, но при участии функции MAX() сделать?
Отредактированно skylink (11.12.2009 15:51:57)
Неактивен

Сделайте, я не против ![]()
Отталкиваться можно от чего-то такого:
SELECT ... FROM tablename WHERE bid = (SELECT MAX(bid) FROM tablename)
Неактивен
Огромное спасибо! Неделю голову ломал..теперь все работает как нужно.
Неактивен