Добрый день! Есть таблица `table`:
CREATE TABLE IF NOT EXISTS `table` (
`main` int(11) NOT NULL,
`sid` int(11) DEFAULT NULL,
`rid` int(11) DEFAULT NULL,
`nid` text
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `table`(
`main`, `sid`, `rid`, `nid`
) VALUES(
1, 8, 1, null),
(1, null, null, "привет"),
(2, 8, 1, null),
(2, 1, 2, null),
(1, 1, 2, null),
Нужно найти такое поле `main`, где есть записи
sid = 8, rid=1, nid = null ;
sid = null, rid = null, nid = "привет"
sid=1, rid=2, nid = null
Можно выбрать так записи за один запрос?
$d = array(
array('sid' => 8, 'rid' => 1, 'nid' => null),
array('sid' => null, 'rid' => null, 'nid' => 'привет'),
array('sid' => 1, 'rid' => 2, 'nid' => null),
);
//$d - не обязательно должен содержать 3 записи
Объясню на шагах, так как иначе не могу:
1. Берем данные: sid = 8, rid=1, nid = null
Выборка должна дать две записи с main =1 и main =2,
2. Добавляем условие: sid = null, rid = null, nid = "привет"
Выборка должна вернуть только одну запись с main=1
UPD: дополнил вопрос 2.