我尝试了这个查询,但它返回了重复的行:
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
使表格全扫描。
答案 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';