我正在处理查询,它多次显示相同的行,只是在两个行之间交替。我测试过从所有提到的表中选择每一列,但没有看到行之间的差异。请注意,应该只有两个返回的行,并且我越过了10.sql select多次返回相同的行集合
我认为这与将trc表连接到mlc表有关,但我被困在如何解决它。任何帮助表示赞赏。谢谢。
SELECT mlc.click_amount AS memPayout
FROM tbl_trackvalue AS trv, tbl_tracking AS t, tbl_offers AS off, tblusers AS usr, tbl_mailchimp_trackvalue as mlc
WHERE mlc.tracking_id = trv.tracking_id
AND off.id = t.offer_id
AND off.offer_type = 'mailchimp'
AND usr.id = trv.tr_user_id
AND trv.tr_user_id =1454
AND mlc.requested_date = '2014-01-21'
AND mlc.payment_status = 'pending'
AND mlc.requested_status = 'declined'
更新的代码:。
SELECT mlc.click_amount AS memPayout
FROM tbl_trackvalue AS trv, tbl_offers AS off, tbl_mailchimp_trackvalue as mlc
WHERE mlc.tracking_id = trv.tracking_id
AND off.id = trv.tr_offer_id
AND off.offer_type = 'mailchimp'
AND trv.tr_user_id =1454
AND mlc.requested_date = '2014-01-21'
AND mlc.payment_status = 'pending'
AND mlc.requested_status = 'declined'
UPDATE II(又改了,这一次它的工作原理感谢您的帮助,我很新的,现在实现的是明确与命名加入重要性:
SELECT mlc.click_amount AS memPayout
FROM tbl_mailchimp_trackvalue as mlc inner join tbl_trackvalue AS trv on mlc.tracking_id=trv.tracking_id
WHERE trv.type = 'mailchimp'
AND trv.tr_user_id =1454
AND mlc.requested_date = '2014-01-21'
AND mlc.payment_status = 'pending'
AND mlc.requested_status = 'declined'
您很可能错过了加入,应该发布您的表格结构或创建http://sqlfiddle.com/。 – Sumit
如果你使用'inner join',你可能会发现你的连接和where子句中的过滤器有更明显的区别。这也将帮助你发现你在他们中犯的任何错误。 – GolezTrol
看起来像你的tblusers表连接是相当无用的。 – Xardas