2012-08-10 72 views
1

我使用舊數據庫創建新系統,需要一些幫助(由於缺乏經驗) 這可能過於複雜,但這就是數據庫設置的方式,我無法更改它。複雜的Mysql數據庫加入

有3張桌子。會議1,會議2和註冊人。

除了內容,會話1和會話2是相同的。所以它的工作原理是,如果某個人想要在特定的日子預訂會話1和會話2,數據庫會在會話1和會話2的「id」行中插入「5」。 'id'是主要索引。

「註冊人」中有兩行包含一個列表(例如5,6,7),其中包含註冊人名稱和一些在會話1和會話2中找到的標識。因此,如果您想知道是否爲會議1預定的人,會話的ID將在註冊人會話1列表中。

就像我說的。複雜。

我可以做單獨的查詢,而無需麻煩

SELECT * FROM Session_1 WHERE id IN ($registrant_session_1 /* This is a single quote implode for the ouput of registrant_session_1 */)" 

SELECT * FROM Session_2 WHERE id IN ($registrant_session_2 /* This is a single quote implode for the ouput of registrant_session_2 */) 

我需要創建加入他們的同時輸出查詢幫助。所以理論上說,我首先進行會話檢查,然後根據ID加入它們。

+0

特別有用的是那裏,你可以將兩個表合併在一起,然後任何方式按內容類型鍵入它們?目前,它似乎並不像你有一個健康的設置。 – 2012-08-10 12:48:05

+0

您能澄清一下您希望輸出的外觀如何嗎? – Marcus 2012-08-10 13:04:59

+0

可以說。 Id,會議1(是/否),會議2(是/否)。他們需要加入,否則結果會混雜在一起。 – deyssen 2012-08-10 13:06:44

回答

0

也許你可以使用「聯盟」條款 FROM Session_1 WHERE Session_1.id IN ($registrant_session_1 /* This is a single quote implode for the ouput of registrant_session_1 */) UNION (SELECT * FROM Session_2 WHERE Session_2.id IN ($registrant_session_2 /* This is a single quote implode for the ouput of registrant_session_2 */)