1

我有两个mysql表,例如

国家排名表

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

clickTable 表格

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

试试这个

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

我想从指定国家/地区的 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

我认为您的查询是正确的,但您拼错了 Table Name clickTable。你改写了clicksTable

于 2013-01-10T07:55:31.167 回答