0

私は2つのテーブルを持っています:

Appointments
id serviceId
1  1
2  1

Services
id
1

アポイントメントテーブルは、serviceId列を使用してサービステーブルにリンクされます。アポイントメントテーブルからデータを取得するときに、サービステーブルからもデータを取得したいのですが、各テーブルの列数が一致していません。

私はこれを試しました:

SELECT appointments.*, services.* FROM appointments
INNER JOIN services ON id = appointments.serviceId
WHERE id = ?

しかし、これは機能しません。まず、結合で、まだデータを取得していない予定テーブルからIDを参照するにはどうすればよいですか?次に、両方のテーブルからすべてのデータを取得し、2つの列名が一致する場合にデータを取得するにはどうすればよいですか?

これは機能しません:

results.getInt("id");

両方のテーブルにidフィールドがあるためです。

4

1 に答える 1

1

ID属するテーブル名を指定し、

SELECT appointments.*, services.* 
FROM appointments
     INNER JOIN services 
         ON Services.id = appointments.serviceId
-- WHERE id = ? -- specify also here as the two tables have column ID

ALIASまたはそれらの周りに追加します

SELECT  appointments.id as AppID,
        appointments.serviceId as AppServiceID
        services.id AS ServiceID
FROM    appointments
        INNER JOIN services
            ON Services.id = appointments.serviceId
-- WHERE   id = ?

それらの値を取得したら、今すぐエイリアスを使用します。

results.getInt("AppID");
于 2012-10-07T04:33:49.490 に答える