2017-04-23 80 views
0

我正在設計一個搜索引擎,它將篩選數據庫中的數據。我在我的數據庫表2:SQL:如何使用內部連接將多個查詢串聯在一起?

Members:= `MemberID|Firstname|Secondname|Member_Type|Skills|Marital Status` 
Schedule:= `ScheduleID|MemberID (foreign key)|six_am|seven_am|...|nine_pm` 

(其中用於six_am值| seven_am | ... | nine_pm是布爾值,代表可用性)

我的問題是,如果有一種方式來創建一個單個SQL查詢類似於:

SELECT * FROM members1 (WHERE $x LIKE $firstname OR $x LIKE SecondName...) INNER JOIN schedules ON (members1.members_id = schedules.member_id) WHERE eleven_am=1 OR twelve_pm=1

這樣一來,我可以輸入多個的單個查詢,而不是。

+0

首先,使用準備語句將變量綁定到您的sql,這將有助於防止SQL注入。其次,請提供更多細節,期望的結果不清楚。此外,更好的方式來建立自己的查詢'選擇 \t * FROM \t成員1 \t內對members1.members_id = schedules.member_id WHERE \t $ X比如$姓名或$ X LIKE SecondName \t並加入時間表eleven_am = 1或twelve_pm = 1' – Arbels

回答

0

您可以使用準備好的語句:

SET @query = 'build your own query in any way'; 
PREPARE stmt FROM @query; 
SET @id = 4; -- here you can add variable for safe inserting to the query. if you want to 
EXECUTE prepared_query USING @id; 
DEALLOCATE PREPARE stmt; 

@query可以通過一些服務器端語言來構建(PHP爲例),或在純SQL字符串操作。
然後您發送「模板」執行。
如果你會提供更多的細節,我可以建立更精確的例子。
但這是一個想法。