2013-04-21 2 views
0

У меня есть две таблицы в mysql.i, чтобы проверить поле в первой таблице. Если поле не пусто, тогда поиск в той же таблице ищет другой файл. Для примераПоиск в двух таблицах с IF в mysql

CREATE TABLE IF NOT EXISTS `crm_list` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` varchar(22) NOT NULL, 
`status` int(22) NOT NULL DEFAULT '1', 
`dateupdated` date NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; 

CREATE TABLE IF NOT EXISTS `test` (
    `id` int(22) NOT NULL AUTO_INCREMENT, 
    `rec` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `myname` varchar(22) NOT NULL, 
    `list_id` int(22) NOT NULL 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

В первой таблице я хочу, чтобы проверить, если имя не пустой/нуль, то

WHERE crm_list.status=1 AND crm_list.dateupdated=2012-04-13 

в противном случае проверьте во второй таблице, как

WHERE test.myname='abc' 

отношения LIST_ID в секунду таблица, которая является идентификатором первой таблицы

+0

ли '' crm_list.name' и test.myname' теми же именами? –

+0

Нет ... это совершенно разные вещи – 2013-04-21 18:01:10

+0

показать полный запрос – Sebas

ответ

0

Вот один пример ный подход. Эти условия просто выражаются в предложении where:

select cl.* 
from crm_list cl 
where (cl.status=1 AND cl.dateupdated=2012-04-13 and coalesce(cl.name, '') <> '') or 
     (coalesce(cl.name, '') = '' and 
     cl.list_id in (select list_id from test where myname - 'abc' 
    ) 
Смежные вопросы