如何从3个表中选择列?

时间:2012-01-20 11:04:27

标签: mysql

我尝试了这个查询,但它返回了重复的行:

SELECT * 
FROM type_prospection INNER JOIN etape_prospection e ON type_prospection.type_prosp_id=e.type_prosp_id , 
etape_prospection INNER JOIN transfert ON etape_prospection.prosp_id=transfert.prosp_id 
WHERE transfert.user_code ='3' AND transfert.date_transfert='2012-01-20';

所以如何正确编写查询,因为我在MySQL中不是很好。


编辑:

实际上我想编写与此相同的查询:

SELECT * 
FROM etape_prospection INNER JOIN type_prospection 
ON etape_prospection.type_prosp_id = type_prospection.type_prosp_id 
WHERE etape_prospection.prosp_id IN (select transfert.prosp_id 
                                     from transfert 
                                     where transfert.user_code ='3' 
                                     AND transfert.date_transfert='2012-01-20');

我的老板不喜欢这个查询,因为IN使表格全扫描。

2 个答案:

答案 0 :(得分:0)

逗号导致问题。试试这个:

SELECT  * 
FROM    type_prospection
        INNER JOIN
                etape_prospection e
                ON type_prospection.type_prosp_id=e.type_prosp_id 
        INNER JOIN
                transfert
                ON e.prosp_id=transfert.prosp_id 
WHERE transfert.user_code ='3' AND transfert.date_transfert='2012-01-20';

答案 1 :(得分:0)

试试这个:

SELECT DISTINCT transfert.user_code -- Add other columns here 
FROM    type_prospection INNER JOIN etape_prospection e 
            ON type_prospection.type_prosp_id = e.type_prosp_id
        INNER JOIN transfert  
            ON etape_prospection.prosp_id = transfert.prosp_id 
WHERE transfert.user_code ='3' AND transfert.date_transfert='2012-01-20';