MYSQL选择查询,列相同。

3

你好,我正在尝试查询我的数据库中的一个表格,基本上我需要从该表格中选择driver_id,其中team_id与用户的driver id相同,存储在变量$user_driver_one中。因此,基本上是选择具有相同team_id的另一位司机。

column driver_id 1 2 3 4 5 6 7 8 9 10

  column team_id 3 3 2 2 1 1 4 4 5 5

用户可能有 $user_driver_one = 4,所以我需要在查询中选择 driver_id = 3,因为 driver_id 3 具有相同的 team_id。

我在这方面遇到了问题,非常感谢任何帮助。


我很好奇driver_id和team_id之间的关系是什么。为什么你想要拥有与他们的团队相同ID的人?看起来像是代码异味。 - Clement Herreman
基本上,所有的车手都属于一个团队,这就是一级方程式赛车。用户选择3名车手,因此在查询中,我需要能够选择用户所选车手的队友。 - user970117
在你编辑问题后,我更新了我的答案。干杯。 - Chris G.
4个回答

4

请确保转义参数

$user_driver_one = (int) $user_driver_one;

MySQL:

"SELECT `driver_id` 
 FROM `table` 
 WHERE `team_id` = (
     SELECT `team_id`
     FROM `table`
     WHERE `driver_id` = '$user_driver_one'
     LIMIT 1
    )
 AND `driver_id` != '$user_driver_one'";

没问题!花一两个小时学习一些子查询和连接基础知识,你会在 SQL 方面感到更加自信。 - Chris G.

1
 SELECT driver_id FROM T1 WHERE team_id = driver_id AND team_id = @user_driver_one

0
如果你要使用PHP,它会像这样:
mysql_query("SELECT driver_id FROM tablename WHERE team_id = '$user_driver_one'");

当然,在执行查询之前进行一些清理是明智的,特别是如果您正在从用户输入中分配 $user_driver_one 变量。

0
select driver_id from yourtablename where team_id in (select team_id from yourtablename where driver_id=4)and driver_id!=4

你可以使用 $user_driver_one 代替 4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接