Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从3个表中选择列?_Mysql - Fatal编程技术网

Mysql 如何从3个表中选择列?

Mysql 如何从3个表中选择列?,mysql,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 =

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

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');

我的老板不喜欢这个查询,因为中的
会对表进行完整扫描。

逗号会给您带来问题。试试这个:

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';
试试这个:

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';

它导致错误:
错误代码:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可使用的正确语法。第4行的type\u prosp\u id=e.type\u prosp\u id,其中transfert.user\u code='3'已编辑-感觉可能不支持嵌套联接。这会导致错误:
错误代码:1054未知列“etape\u prospection.prosp\u id”“on子句”