0

select sql ステートメントで助けが必要です。

私のmysqlデータベースで:

ロケーションテーブル

serialID(AI)|locations | telephone | address
---------------------------------------------
1           | A       
2           | B
3           | C
4           | D

users table
userID | location chosen
-------------------------
1      | A
2      | B
3      | B

特定の場所を選択してテーブルに表示する人の数を数えたい。したがって、この特定の場所でより多くのユーザーがお気に入りの場所として選択した場合、最初の行に移動します。どうすればこれを行うことができますか?

動的テーブルに入力すると、このようなもの->

location | address | telephone | user's favourable
B        |  -      | -         |  2
A        |  -      | -         |  1
C        |  -      | -         |  0
D        |   -     | -         |  0
4

5 に答える 5

1

次のようなクエリを実行できます。

SELECT l.locations, l.telephone, l.address, COUNT (u.userID) as `location_count`
FROM location AS l
LEFT OUTER JOIN users AS u on l.locations = u.location_chosen
GROUP BY l.locations
ORDER BY `location_count` DESC
于 2013-01-15T16:20:57.817 に答える
0

これを使って:

select count(userId) count,locations,address,telephone 
from Table1 Left join Table2 
on Table1.locations = Table2.location

group by locations order by count desc ;

ここを参照..リンク

于 2013-01-15T16:35:07.757 に答える
0
SELECT  loc.*, countResult.usersFavourable
FROM    location loc
        LEFT JOIN
        (
            SELECT  locationChoosen, COUNT(*) `usersFavourable`
            FROM    users
            GROUP BY    locationChoosen
        ) countResult ON loc.locations = countResult.locationChoosen
ORDER BY countResult.usersFavourable DESC, loc.locations
于 2013-01-15T16:20:37.577 に答える
0

次のようなことを試してください:

SELECT  l.location, l.address, l.telephone, COUNT(u.userID) AS [users favourable]
FROM    location l
        LEFT JOIN
            users u
            ON l.location = u.locationchosen
GROUP BY l.location, l.address, l.telephone
于 2013-01-15T16:20:43.793 に答える
-2
 SELECT LocationChosen, Count(*) FROM usersTable GROUP BY LocationChosen
于 2013-01-15T16:20:12.600 に答える