私は簡単な問題だと思っていますが、私のSQLスキルはそこにはなく、Googleは(まだ)助けていません。選択した行数がリンクテーブルにある
私は、次の表(読みやすくするためにストリップダウン)を持っている:
SELECT P.ID FROM PROPERTIES P WHERE COUNT(SELECT PP.ID FROM PROPERTY_PHOTOS PP WHERE PP.PROPERTY_ID = P.ID) > 0
:私がやりたい何PROPERTIES.ID = PROPERTY_PHOTOS.PROPERTY_ID
にリンク
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 ;
のようなものですまたは
SELECT P.ID FROM PROPERTIES P HAVING COUNT(SELECT PP.ID FROM PROPERTY_PHOTOS PP WHERE PP.PROPERTY_ID = P.ID) > 0
しかし、両方のクエリは構文的に正しくありません。
誰でもPROPERTY_PHOTOSテーブルの対応するレコードを持つPROPERTIESレコードのみを選択する方法についてアドバイスできますか?
を行う必要があります動作するはずですが、それに私を殴り、あなたの答えは優れています –
@ jamesj - 賛辞をありがとう:) – dcp
ああ、私は本当にこれを考えすぎた。何か感覚を私に叩いてくれてありがとう。 – DaveL