私の質問は、特定の条件に基づいてデータを結合することに関するものです。条件に応じたSQL JOIN
たとえば、表Aにはuser_typeという列があります。 user_typeが1の場合、テーブルBからINNER JOINを実行します。ただし、テーブルAのuser_typeが2の場合は、テーブルCからINNER JOINを実行します。
誰かが構文PHPの場合:-)
私の質問は、特定の条件に基づいてデータを結合することに関するものです。条件に応じたSQL JOIN
たとえば、表Aにはuser_typeという列があります。 user_typeが1の場合、テーブルBからINNER JOINを実行します。ただし、テーブルAのuser_typeが2の場合は、テーブルCからINNER JOINを実行します。
誰かが構文PHPの場合:-)
通常のように両方のテーブルでINNER JOINを使用し、CASE文を使用してテーブルBまたはテーブルCの結果を表示します。
SELECT CASE WHEN tableA.user_type = 1 THEN tableB.user_type
WHEN tableA.user_type = 2 THEN tableC.user_type
END as user_type
FROM tableA
INNER JOIN tableB
ON tableA.id = tableB.id
INNER JOIN tableC
ON tableA.id = tableC.id
素敵な答えですが、 'WHEN tableA.user_type = 2 THEN tableC.user_type'を2行目にしてはいけませんか? –
@MichaelKうん、コピー&ペーストミス – McNets
upvoteに値する素晴らしい、素晴らしい解決策... –
[この回答](http://stackoverflow.com/questions/26518526/conditional-join-statement-sql-server)はSQL Serverのですが、私は、これは、同様のMySQLのために適用されるべきであると考えています。編集:または私は実際に[同様のMySQLの質問](http://stackoverflow.com/questions/1255492/conditional-join-in-mysql)を検索することができます。 – cteski