同じテーブルからのデータを2回使用するビューを作成しています。その結果、同じ列名が2回表示されます。
したがって、これらの列にエイリアスを与える必要があります。私がそれをやるなら、私はそれを次のように書くでしょう:
SELECT u.* as 'one_*', u2.* as 'two_*'
FROM users u
LEFT JOIN relationships r ON u.id=r.id_one
LEFT JOIN users u2 ON r.id_two=u2.id
しかし、それは機能しません。ご協力いただきありがとうございます!
編集:
実際に取得しているデータは次のとおりです。
| id | name | id | name |
1 john 2 alex
取得したいデータは次のとおりです(まだSELECT u.*, u2.*
):
| id | name | brother_id | brother_name |
1 john 2 alex
*
をエイリアスで使用することはできません。エイリアスは個々の列に使用できます。
代わりに、各列にエイリアスを作成する必要があります。
残念ながら、列が多い場合は、次の手順を実行する必要があります。
SELECT u.col1 AS u_col1
, u.col2 AS u_col2
, u.col3 AS u_col3
-- etc
, u2.col1 AS u2_col1
, u2.col2 AS u2_col2
, u2.col3 AS u2_col3
-- etc
FROM table1 AS u
-- INNER JOIN / LEFT OR RIGHT OUTER JOIN / ,
table2 AS u2
[〜#〜] union [〜#〜] クエリを使用してみてください。
例えば.
select a.typeid, a.typename from MYTABLE a where a.typeid=3 UNION select a.typeid, a.typename from MYTABLE a where a.typeid=4
SELECT *
を使用してから、コードでu.field1
とu2.field2
を参照することはできませんか?