2011-09-29 38 views
3

嗨我想要查询我的数据库中的表,基本上我需要从表中选择driver_id,其中team_id与用户驱动程序ID相同,存储在变量$ user_driver_one。所以几乎选择了具有相同team_id的其他车手。MYSQL SELECT QUERY其中列是相同的

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。

我有这个问题,任何帮助,非常感谢。

+0

使用$ user_driver_one我很好奇,是什么driver_id的TEAM_ID之间的关系。你为什么想要与他们的团队有相同ID的人?看起来像一个代码味道。 –

+0

基本上司机都属于一个团队,这是公式一。并且用户选择3个驱动程序,因此在查询中,我需要能够选择用户选择的驱动程序的队友。 – user970117

+0

我在编辑完问题后更新了我的答案。干杯。 –

回答

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'"; 
+0

完美!非常感谢!,这就是它。 – user970117

+0

没问题!花一两个小时来学习一些Subquery和Join基础知识,你会对SQL更加自信。 –

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 

可以代替4