我有工作,我怎麼想的聲明,不過是它正確的方式,因爲我有很多的IF語句,如果對性能的影響還是我應該知道採取不同的方法來獲得最佳實踐。這是從閱讀文檔創建的,所以我可能已經繞過它的日誌方式。如果值是另一個表,然後選擇特定的列
SELECT c.id, c.first_name, c.last_name,
IF(c.id IN (SELECT client_id FROM bookings) AND '1' IN (SELECT practitioner_id FROM bookings) , c.address1, NULL) as address1,
IF(c.id IN (SELECT client_id FROM bookings) AND '1' IN (SELECT practitioner_id FROM bookings) , c.address2, NULL) as address2,
IF(c.id IN (SELECT client_id FROM bookings) AND '1' IN (SELECT practitioner_id FROM bookings) , c.town, NULL) as town,
IF(c.id IN (SELECT client_id FROM bookings) AND '1' IN (SELECT practitioner_id FROM bookings) , c.county, NULL) as county,
IF(c.id IN (SELECT client_id FROM bookings) AND '1' IN (SELECT practitioner_id FROM bookings) , c.postcode, NULL) as postcode,
IF(c.id IN (SELECT client_id FROM bookings) AND '1' IN (SELECT practitioner_id FROM bookings) , c.email, NULL) as email,
IF(c.id IN (SELECT client_id FROM bookings) AND '1' IN (SELECT practitioner_id FROM bookings) , c.dob, NULL) as dob
FROM clients c
你到底想幹什麼? –
不,這絕對不是正確的,它極有可能是給你錯誤的結果,除非你在預訂表中只有一行。藉此這裏'和「1」 IN(SELECT practitioner_id FROM預訂)'它完全無視它似乎檢查如果c.id是表預訂此前的說法。你可能認爲它應該與之相關,但事實並非如此。 –
我試圖只返回客戶信息,如果他們已經與當前登錄的人預訂,否則登錄的人只能看到名字和姓氏。聲明給出了正確的輸出,只是想確保我沒有學習壞習慣。 – Bish25