1

私は次のような2つのmysqlテーブルを持っています

国ランキングテーブル

country, clicks
-------  -----
0         657  
1         3300
2         9050

クリックテーブルテーブル

id, name,    clicks,  deviceid, country
-- ------    ------   --------  -------
0   player1  33       uniqueid1  0
1   player2  665      uniqueid2  2 
2   player3  88       uniqueid3  18
3   player4  5000     uniqueid4  2

国が指定されているcountriesRankingテーブルからクリック値を取得し、deviceidが指定されているclickTableからクリック値を取得したい。

何かのようなもの

SELECT clicks FROM clicksTable WHERE deviceid='$deviceid' UNION SELECT clicks FROM countriesRanking WHERE country='$country'

したがって、deviceidがuniqueid4で、countryが2の場合、これは

5000, 9050
4

4 に答える 4

1

これを試して:

SELECT ct.clicks fromClicks, cr.clicks fromCountry
FROM clicksTable ct 
LEFT JOIN countriesRanking cr ON ct.country = cr.country 
WHERE ct.deviceid='uniqueid4' AND ct.country = 2;

このリンクを確認してくださいSQL FIDDLE DEMO

出力

| FROMCLICKS | FROMCOUNTRY |
----------------------------
|       5000 |        9050 |
于 2013-01-10T07:47:19.433 に答える
0

国を指定したcountriesRankingテーブルからクリック値を取得し、deviceidを指定したclickTableからクリック値を取得したいです。

このような:

SELECT clicks 
FROM clicksTable 
WHERE deviceid = 'uniqueid4' 
UNION ALL
SELECT clicks 
FROM countriesRanking 
WHERE country = 2;

SQL フィドルのデモ

これにより、次のことが得られます。

| CLICKS |
----------
|   5000 |
|   9050 |
于 2013-01-10T07:51:30.873 に答える
0

これを試して

SELECT clicks FROM clicksTable ct
join countriesRanking cr on cr.country=ct.country

WHERE deviceid='$deviceid' and cr.country='$country'
于 2013-01-10T07:48:49.600 に答える
0

クエリは正しいと思いますが、 Table Name のスペルが間違っていますclickTable。あなたがclicksTable代わりに書いた。

于 2013-01-10T07:55:31.167 に答える