есть 3 таблицы dogs | id | name | cats | id | name | event | id | cats_or_dog_id | event | Нужно выбрать все события где event.cats_or_dog_id = ( dogs.id OR cats.id ) Mysql 4.1.8
а что делать, если dogs.id и cat.id совпадает? Подозреваю, что у вас это — невозможно. А если у вас такая структура, то должно было бы быть что-то типа такого: Pets | ID | Name | Type | Events | ID | PetID | Event | И тогда очень легко все зацепить: [sql]SELECT * FROM `Events` INNER JOIN `Pets` ON `Pets`.`ID` = `Events`.`PetID`[/sql] хотя и сейчас можно сделать два джоина
Как я понял в один запрос это не реально? нет они не совпадают id все разные Нужно что-то типа этого носам не допру как это сделать PHP: SELECT event.id FROM event, dogs, cats WHERE event.id = ( ( SELECT dogs.id FROM dogs ) or ( SELECT cats.id FROM cats ) );
по-моему как-то так можно: [sql]SELECT * FROM event, dogs, cats WHERE event.id = dogs.id OR event.id = cats.id[/sql] или одним запросом два запроса через UNION
проблема была в скобках SELECT * FROM event, dogs, cats WHERE (event.id = dogs.id OR event.id = cats.id) я к такому варианту тоже пришел но так как у меня были еще и AND запрос не работал