Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
Есть 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)
Неактивен
Огромное спасибо! Неделю голову ломал..теперь все работает как нужно.
Неактивен