テーブル エイリアスを使用して結合した後、プロパティを別のテーブルと区別するにはどうすればよいですか?
簡単な例として、多くのプロパティを持つ 2 つのテーブルがあります。プロパティ名は一意ではありませんid
。たとえば、両方のテーブルに - があります。
今-私は次の例示的なクエリを持っています:
SELECT * FROM tableA ta INNER JOIN tableB tb ON ta.id = tb.a_id
両方の「id」プロパティの値を取得するにはどうすればよいですか?
以下は機能しませんでした:
def sql = Sql.newInstance("jdbc:mysql://${MYSQL_SERVER}/${MYSQL_TABLE}", MYSQL_USER, MYSQL_PASSWORD, "com.mysql.jdbc.Driver")
sql.eachRow (query){ row ->
println "ID of the 'table a object' : ${row['ta.id']}"
println "ID of the 'table b object' : ${row['tb.id']}"
}
これにより、次のエラーが表示されます。java.sql.SQLException: Invalid column name ta.id
私の一時的な - しかし望ましくない - 解決策は、クエリでプロパティを指定することです:
SELECT ta.id as aID, tb.id as bID, * FROM tableA ta INNER JOIN tableB tb ON ta.id = tb.a_id
と の両方tableA
にtableB
は、重複する可能性のある多くのプロパティがあり、それぞれ手動で指定することはできません。
機能させるにはどうすればよいですか?