-1

I've got query.

SELECT * FROM '.PRFX.'sell 
WHERE draft = "0" '.$e_sql.' 
AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") 
AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") 
ORDER BY raised DESC '.$sql_limit;

I want to add 3 records by the lowest number of refreshes; best on 5th position

they must be unique (so if you connect two UNION ALL...)

RobP
  • 7,988
  • 3
  • 18
  • 34
  • No, I'm not drunk. `SELECT DISTINCT * (SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY raised DESC '.$sql_limit;) UNION ALL (SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY refreshes ASC LIMIT 3)` but how to make it work? – user3649198 Dec 11 '14 at 18:31
  • I've came up with: #`$sql = '(SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY raised DESC '.$sql_limit.') UNION (SELECT * FROM '.PRFX.'sell WHERE draft = "0" '.$e_sql.' AND ID NOT IN (SELECT id_ FROM '.PRFX.'skipped WHERE uid = "'.$u.'") AND ID NOT IN (SELECT id_ FROM '.PRFX.'followed WHERE uid = "'.$u.'") ORDER BY refreshes ASC LIMIT 3)';`, but it throws duplicates. – user3649198 Dec 11 '14 at 19:36
  • Hmm. Strip your code. 'PRFX.' makes no sense. This SQL code is very difficult to understand (for me) And why you posted SELECT request if you want to ADD? – Mark Zucchini Dec 11 '14 at 20:55

1 Answers1

0

Firstly, you need make your SQL more readable. Something like this

SELECT * FROM sell
WHERE draft = 0
AND ID NOT IN (SELECT id_ FROM skipped WHERE uid = '0')
AND ID NOT IN (SELECT id_ FROM followed WHERE uid = '0')
ORDER BY raised DESC LIMIT 15

Then, what do you want? Add data to sell table through single request? This can be done with such request

INSERT INTO sell (key1, key2, keyN)
VALUES 
('aaa', 'bbb', 'ccc'),
('ddd', 'eee', 'fff');
-- and so forth.
Mark Zucchini
  • 935
  • 6
  • 11