正如我在标题中所说,或者我的问题有点让人困惑。在这里..。
因此,我想结合两个表使用内部连接(当然)与一些不同。这是我的表1,PK = steam_id
SELECT * FROM nmrihstats ORDER BY points DESC LIMIT 4;
+---------------------+----------------+--------+-------+--------+
| steam_id | name | points | kills | deaths |
+---------------------+----------------+--------+-------+--------+
| STEAM_0:1:88467338 | Alan14 | 50974 | 5438 | 12 |
| STEAM_0:0:95189481 | ? BlacKEaTeR ? | 35085 | 24047 | 316 |
| STEAM_0:1:79891668 | Lowell | 34410 | 44076 | 993 |
| STEAM_0:1:170948255 | Rain | 29780 | 30167 | 278 |
+---------------------+----------------+--------+-------+--------+
4 rows in set (0.01 sec)表2,PK = authid
SELECT * FROM store_players ORDER BY credits DESC LIMIT 4;
+-----+-------------+---------------+---------+--------------+-------------------+
| id | authid | name | credits | date_of_join | date_of_last_join |
+-----+-------------+---------------+---------+--------------+-------------------+
| 309 | 1:88467338 | Alan14 | 15543 | 1475580801 | 1482260232 |
| 368 | 1:79891668 | Lowell | 10855 | 1475603908 | 1482253619 |
| 256 | 1:128211488 | Fuck[U]seLF | 10422 | 1475570061 | 1482316480 |
| 428 | 1:74910707 | Mightybastard | 7137 | 1475672897 | 1482209608 |
+-----+-------------+---------------+---------+--------------+-------------------+
4 rows in set (0.00 sec)现在,我如何使用内部连接,而无需删除"STEAM_0:“或添加它。也请解释一下
发布于 2017-02-06 16:06:12
您可以使用join like操作符,例如:
SELECT n.*, sp.*
FROM nmrihstats n JOIN store_players sp ON n.steam_id LIKE CONCAT('%', sp.authid);这是SQL Fiddle。
另一种方法是使用MySQL的String函数从steam_id中提取相关部分,但我认为这不是您想要的:
SELECT SUBSTR(steam_id, LOCATE('STEAM_0:', steam_id) + CHAR_LENGTH('STEAM_0:'))
FROM nmrihstats;发布于 2017-02-06 16:04:40
不可能,您需要删除" STEAM_0:",与WHERE匹配,使用子字符串删除STEAM_0: from列等于其他表中的列,或者在T1中不使用“STEAM_0:”的新字段,即2列与内部联接匹配
https://stackoverflow.com/questions/42071982
复制相似问题