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子句”