我正在尋找動態選擇連接查詢中的特定列,其中只有當另一個特定字段的值不等於0時,纔會選擇特定字段。MySQL在連接中動態選擇字段?
因此,這裏是我正在進行的操作。
該查詢使用以下3個表,用戶 - 學校 - 校園
我想選擇所有來自用戶的數據,並且如果用戶的campus_id字段不等於0,那麼我想包括校園的校園名稱字段,在其中,campus.id = users.campus_id,我該怎麼做?
我正在尋找動態選擇連接查詢中的特定列,其中只有當另一個特定字段的值不等於0時,纔會選擇特定字段。MySQL在連接中動態選擇字段?
因此,這裏是我正在進行的操作。
該查詢使用以下3個表,用戶 - 學校 - 校園
我想選擇所有來自用戶的數據,並且如果用戶的campus_id字段不等於0,那麼我想包括校園的校園名稱字段,在其中,campus.id = users.campus_id,我該怎麼做?
你可以使用CASE WHEN
SELECT column1, column2, (CASE WHEN U.campus_id<>0 THEN campus_name) FROM USERS U, CAMPUSES C
WHERE (U.campus_id <>0 AND C.id=U.campus_id)
如果我想要超過1的條件,我該如何做到這一點? –
@BraydonBatungbacal你可以使用CASE WHEN .... THEN ... WHEN ... THEN .... ELSE檢查[documentation](http://dev.mysql.com/doc/refman/5.0/en /case-statement.html) – Mansuro
select * from users u
left join campuses c on (u.campus_id = c.id)
也許這將幫助? http://stackoverflow.com/questions/566600/dynamic-conditional-sql-join – Ruben
@Braydon:每個結果行必須具有相同的列數。如果campus_id爲0,您希望列的值是多少?此外,[示例代碼](http://sscce.org/)說明了數量。請包含表格模式(作爲CREATE TABLE語句),示例數據(如INSERT語句),儘可能多的查詢,查詢結果和期望的結果。 – outis
[基於MySQL中其他列的查詢條件列]的可能重複(http://stackoverflow.com/questions/849348/conditional-column-for-query-based-on-other-columns-in-mysql) – outis