У меня есть подозрение, что это простая проблема, но мои навыки sql просто отсутствуют, и Google не помогает мне (пока).
У меня есть следующие таблицы (урезанные для простотычтение):
CREATE TABLE IF NOT EXISTS `PROPERTIES` (
`ID` int(11) NOT NULL auto_increment,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=111 ;
CREATE TABLE IF NOT EXISTS `PROPERTY_PHOTOS` (
`ID` int(11) NOT NULL auto_increment,
`PROPERTY_ID` int(11) NOT NULL,
`PHOTO` varchar(128) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=911 ;
Какую ссылку на PROPERTIES.ID = PROPERTY_PHOTOS.PROPERTY_ID
я хотел бы сделать примерно так:
SELECT P.ID FROM PROPERTIES P WHERE COUNT(SELECT PP.ID FROM PROPERTY_PHOTOS PP WHERE PP.PROPERTY_ID = P.ID) > 0
или
SELECT P.ID FROM PROPERTIES P HAVING COUNT(SELECT PP.ID FROM PROPERTY_PHOTOS PP WHERE PP.PROPERTY_ID = P.ID) > 0
Однако оба запроса синтаксически некорректны.
Кто-нибудь может посоветовать, как выбрать из записей PROPERTIES только записи, соответствующие записи которых содержатся в таблице PROPERTY_PHOTOS?