SELECT (CASE WHEN columna = 887 THEN columnb ELSE columna END) AS 'columnAlias'
FROM <table>
WHERE columna = 887
OR columnb = 887
編輯:使用上述查詢的結果來獲得從另一個表詳細記錄.. 。
使用JOIN:
SELECT T2.*
FROM Table2 AS T2
INNER JOIN (SELECT (CASE WHEN columna = 887 THEN columnb ELSE columna END) AS 'columnAlias'
FROM Table1
WHERE columna = 887
OR columnb = 887) AS _Temp ON _Temp.columnAlias = T2.ForeignKeyColumn
使用嵌套查詢:
SELECT T2.*
FROM Table2 AS T2
WHERE T2.ForeignKeyColumn IN (SELECT (CASE WHEN columna = 887 THEN columnb ELSE columna END) AS 'columnAlias'
FROM Table1
WHERE columna = 887
OR columnb = 887)
什麼是b列,而什麼是兩列之間的關係? – 2012-01-18 20:23:52
如果你能解釋什麼是columnb,那會幫助我理解你在做什麼。 – 2012-01-18 20:24:50
這兩列都是id的成員。第一個只是發送請求的人。還有一個列的狀態,如果這是0,那麼請求還沒有得到滿足,如果它的1,那麼它已經贊成,這兩個人是朋友 – Jake 2012-01-18 20:29:03