Хорошо, я собираюсь попробовать это снова ... на этот раз я определенно понял это правильно. Извините за путаницу. (
table1
+----+---------+------------+------+
| id | item_id | product_id | type |
+----+---------+------------+------+
table2, table3, table4 :
+----+---------+
| id | item_id |
+----+---------+
Вот мой основной запрос :
$sql = "SELECT t1.* FROM table1 AS t1, table2 AS t2 WHERE t2.id = '1' AND
t2.item_id = t1.item_id AND t1.type NOT IN ('type1', 'type2') LIMIT 5";
$a = mysql_query($sql);
while($b = mysql_fetch_assoc($a))
А теперь я хочу объединить эти 2 запроса :
1-й запрос :
И ЕСЛИ t1.type = 'type3'
ТО
SELECT t3.item_id FROM table3 AS t3 WHERE t3.id = t1.product_id AND
t3.item_id NOT IN (SELECT t2.item_id FROM table2 AS t2 WHERE t2.id = '1')
ТОЛЬКО если этот оператор t3.item_id NOT IN (...)
в вышеприведенном запросе верен, то должен отображаться t1.id
из основного запроса . Однако, если t3.item_id is IN (...)
, то его следует исключить из результатов.
2-й запрос :
И ЕСЛИ t1.type = 'type4'
ТО
SELECT t4.item_id FROM table4 AS t4 WHERE t4.id = t1.product_id AND
t4.item_id NOT IN (SELECT t2.item_id FROM table2 AS t2 WHERE t2.id = '1')
То же, что и 1-й запрос .
Это все вписывается в один запрос? Мне это нужно только в одном запросе, поэтому я знаю, какие результаты будут отображаться на следующей странице, например, LIMIT 5,5