Php Mysql:通过2个用户ID检索2个用户名

时间:2015-06-13 12:20:59

标签: php mysql sql join

我有一个问题无法解决。我正在为锦标赛做双人发电机。

我有两张桌子。 第一个表包含用户名和用户ID。 第二个表包含match_id,round,user1_id,user2_id

Table 1

user_id  username
21         John
22         Peter
23         Ana
24         Dan


Table 2
match_id  round  user1_id   user2_id
1           1       21          22
2           1       23          24
3           2       21          23
4           2       24          22
.
.
.

我想回应

Round 1
John - Peter
Ana - Dan

Round 2
John - Ana
Dan - Peter

Round 3
...

Round 4
...

只能用一个SQL代码完成,所以我可以从Table1获取user1_id和user2_id的两个用户名吗?

要通过user_id只检索一个用户名,我没有遇到任何问题,而且效果很好:

$sql = "SELECT table1.username, table3.won 
        FROM table1 
        INNER JOIN table3 ON table1.user_id=table3.user_id;";

我知道我可以在Table2中使用user_ids而不是使用用户名,但我想像我上面解释的那样这样做。

4 个答案:

答案 0 :(得分:0)

你可以这样使用

Method Time [s] first.viewitems() <=second.viewitems() 0.9 set(first.items()).issubset(second.items()) 7.3 len(set(first.items()) & set(second.items())) == len(first) 8.5 all(first[key] == second.get(key, sentinel) for key in first) 6.0

稍后回复结果

SELECT T1.USERID_1, T2.USERID_2 FROM TABLE2 T1 JOIN TABLE2 T2 ON T1.MATCH_ID = T2.MATCH_ID

**

  

更新

**

echo 'Round 1 <br \>';
 echo $result1.' vs '.$result2;

这可能会对你有所帮助。如果没有评论......

答案 1 :(得分:0)

$sql = "SELECT table1.username FROM table1 WHERE user_id IN (SELECT table2.user_id1,table2.user_id2 FROM table2 WHERE table2.match_id = 1);

它将帮助您满足您的需求。

尝试这样的事情......

答案 2 :(得分:0)

select CONCAT((select username from table1 t1 where t.user_id=t1.user_id=t.user_id) ,'-',(select username from table1 t1 where t.user_id=t1.user_id=t.user_id)) from table2 t

 select CONCAT(t1.username,'-',t3.username) from table2 t2
  inner join table1 t1 on t1.user_id=t2.user_id
  inner join table1 t3 on t3.user_id=t2.user_id

答案 3 :(得分:0)

我认为这样的事情应该有效:

$headers .= "Content-Type:application/octet-stream ";
$headers .= "name=\"".$_name."\"r\n";       
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."\r\n";