我有SQL select查询,我正在使用inner,我得到了一些值,但有重复。我想要唯一的值,我正在使用DISTINCT,但它不起作用。
select DISTINCT
cy_affiliates_clickthroughs_tbl.*,
cy_affiliates_tbl.email,
cy_affiliates_tbl.firstname
from
cy_affiliates_clickthroughs_tbl
inner join cy_affiliates_tbl on
cy_affiliates_clickthroughs_tbl.refid = cy_affiliates_tbl.referrer
where
cy_affiliates_clickthroughs_tbl.refid = '" . $_SESSION['user_id'] . "'
AND date BETWEEN '$start_date' AND date BETWEEN '$start_date'
AND '$end_date'
ORDER BY date DESC", OBJECT;我想要得到电子邮件和名字的不同值。
发布于 2017-03-06 18:58:17
您应该从select中删除cy_affiliates_clickthroughs_tbl.*。
如果你只想选择不同的电子邮件和名字,这就是你应该有的。
where子句中可能也有问题,因为date BETWEEN '$start_date' AND date BETWEEN '$start_date' AND '$end_date'是错误的。你可能指的是date BETWEEN '$start_date' AND '$end_date'。
发布于 2017-03-06 19:36:00
您可以通过使用GROUP by获取名称和电子邮件的不同值:
select
cy_affiliates_tbl.email,
cy_affiliates_tbl.firstname,
cy_affiliates_clickthroughs_tbl.*
from
cy_affiliates_clickthroughs_tbl
inner join cy_affiliates_tbl on
cy_affiliates_clickthroughs_tbl.refid = cy_affiliates_tbl.referrer
where
cy_affiliates_clickthroughs_tbl.refid = '" . $_SESSION['user_id'] . "'
AND date BETWEEN '$start_date'
AND '$end_date'
GROUP BY cy_affiliates_tbl.email, cy_affiliates_tbl.firstname
ORDER BY date DESC", OBJECT;请注意,您将错过cy_affiliates_clickthroughs_tbl的一些结果,以确保名称和电子邮件的值是不同的。
https://stackoverflow.com/questions/42623647
复制相似问题