The syntax you are looking for is union all
rather than limit
:
SELECT *
FROM item_list
WHERE itemNAME
IN (
SELECT itemNAME
FROM item_list
WHERE itemID = '17'
AND (itemSUB ='1' OR itemSUB ='0')
ORDER BY itemSUB DESC
LIMIT 1 union all
SELECT itemNAME
FROM item_list
WHERE itemID = '57'
AND (itemSUB ='0' OR itemSUB ='0')
ORDER BY itemSUB DESC
LIMIT 1
)
However, this probably will not work, because some SQL engines (notably MySQL) don't allow limit
in such subqueries. Instead, you can do a join:
SELECT il.*
FROM item_list il join
(select *
from ((SELECT itemNAME
FROM item_list
WHERE itemID = '17' AND (itemSUB ='1' OR itemSUB ='0')
ORDER BY itemSUB DESC
LIMIT 1
) union
(SELECT itemNAME
FROM item_list
WHERE itemID = '57' AND (itemSUB ='0' OR itemSUB ='0')
ORDER BY itemSUB DESC
LIMIT 1
)
) l
) l
on il.itemName = l.itemName;