2013-02-15 3 views
0

У меня есть три таблицы на моей базе данных:ВЫБРАТЬ значение из таблицы, потому что два условия не выполняются

ts_room

Поле:

id (PK) 
capacity  
img 
notes 
building_id 
roomstructure_id  
lecturestyle_id 

ts_request

Поле

id (PK) 
day_id 
period_id 
roompref_id (FK > ts_roompref.id) 

ts_roompref

id (PK)  
request_id (FK > ts_request.id)  
room_id (FK > ts_room.id) 

Я хотел бы написать запрос MySQL PDO, который выбирает строки из ts_room при условии, что после запуска строки на ts_roompref (проверка ts_roompref.room_id против ts_room.id) и найти совпадение - мы бы посмотрели значение в ts_request и посмотрели ли day_id и period_id оба матч 1. Он вернет общее количество.

Я надеюсь, что приведенное выше объяснение имеет смысл.

По существу - запросы на номера производятся с использованием этой системы и ts_roompref хранит предпочтения в номерах, сделанные для каждого запроса. Я пытаюсь выяснить, является ли конкретный номер забронирован на день и период (обозначается day_id и period_id в таблице ts_request), в этом случае понедельник (1) и период (1).

+2

[? Что вы пробовали] (http://www.whathaveyoutried.com /) –

+0

Я думал об использовании такого типа 'SELECT * FROM table1 WHERE NOT EXISTS (SELECT 1 FROM table2 WHERE t1.id = t2.id)', но когда пришла третья таблица, я просто сбился с толку – methuselah

ответ

1

Как насчет этого?

SELECT COUNT(*) totalCOUnt 
FROM ts_room a 
     INNER JOIN ts_roompref b 
      ON a.id = b.room_ID 
     INNER JOIN ts_request c 
      ON b.request_ID = c.roompref_ID 
WHERE c.day_ID = 1 AND c.period_ID = 1 

Для дальнейшего получить больше знаний о присоединяется, любезно перейдите по ссылке ниже:

Смежные вопросы