1
我有兩個表一個叫會議和一個叫上座率,上座率按以下格式是一個多對多的關係數據庫:PHP的Propel ORM MySQL的 - 左加入對多對多
Attendance:
user_id | meeting_id | invited
--------+------------+--------
1 | 5 | 1
2 | 5 | 0
3 | 4 | 0
3 | 5 | 1
3 | 6 | 0
會議是在格式如下:每次會議
Meetings:
meeting_id | meeting_name | owner_id
-----------+--------------+----------
3 | Awesome | 2
4 | Boring | 2
5 | Cool | 5
9 | Sexy | 3
只能有一個排的會議,但每次會議出席無限行(僅限於每個可能的用戶爲每個會議)。
如何在SQL和/或行走做我創造的東西,會列出所有會議,其中(提供)user_id是無論是在會議owner_id OR值分別爲user_ID的,並邀請在簽到數據庫。
我要尋找的結果(基於以上數據)的用戶ID 3搜索時:
Result for userid3:
meeting_id | meeting_name | owner_id
-----------+--------------+----------
5 | Cool | 5 - Because userid 3 is attending meeting 5
9 | Sexy | 3 - Because userid 3 owns meeting 9
我現在有這並未真正發揮作用,並且每次會議產生多行(以下因爲會議在考勤數據庫中存在多次)。
$criteria->addJoin(MeetingMeetingsPeer::ID, MeetingAttendancePeer::MEETING_ID, Criteria::LEFT_JOIN);
$criterion = $criteria->getNewCriterion(MeetingMeetingsPeer::OWNER_ID, Meeting::getUserId());
$criterion->addOr($criteria->getNewCriterion(MeetingAttendancePeer::USER_ID, Meeting::getUserId()));
$criteria->add($criterion);
return $criteria;
這有點像下面的SQL:
SELECT meeting_meetings.ID, meeting_meetings.OWNER_ID, meeting_meetings.GROUP_ID, meeting_meetings.NAME, meeting_meetings.COMPLETED, meeting_meetings.LOCATION, meeting_meetings.START, meeting_meetings.LENGTH, meeting_meetings.CREATED_AT, meeting_meetings.UPDATED_AT FROM `meeting_meetings` LEFT JOIN meeting_attendance ON (meeting_meetings.ID=meeting_attendance.MEETING_ID) WHERE (meeting_meetings.OWNER_ID=1 OR meeting_attendance.USER_ID=1)
感謝您的時間,
你想要做哪些事:讓誰擁有/所有用戶的用戶ID參加會議?或者你是否希望獲得特定用戶擁有/參與的所有會議(正如您的查詢似乎表明的那樣)? – TehShrike
後者,對不起,你能指出這個問題在哪裏誤導你,所以我可以糾正這個問題嗎?該模式後 –
第二款:「如何在SQL和/或行走做我創造的東西,會列出要麼在會議中owner_id OR值分別爲user_ID的,並邀請在簽到數據庫的所有用戶。」 – TehShrike