1

さまざまな列を持つ 3 つのテーブルがあります。

tableA = id(PK) & name columns
tableB = id(PK), A_ID(foreign key to tableA), name, address, etc columns
tableC = id(PK), A_ID(foreign key to tableA), name columns

次のクエリを使用して、tableA name = 'something' に基づいてすべてのテーブル内の特定の列から値を取得しようとしていますが、常に構文エラーが返されます。

“SELECT tableA.name, tableB.name, tableB.address, tableC.name FROM 
tableA, tableB, tableC JOIN tableB ON tableA.id = tableB.A_ID JOIN tableC 
ON tableA.id = tableC.A_ID WHERE tableA.name = ‘something’”  
4

4 に答える 4

2

構文fromを使用する場合は、ステートメントからテーブルを削除する必要がありますjoin

SELECT tableA.name, tableB.name, tableB.address, tableC.name 
FROM tableA
INNER JOIN tableB ON tableA.id = tableB.A_ID 
INNER JOIN tableC ON tableA.id = tableC.A_ID 
WHERE tableA.name = 'something'

エイリアスを使用することをお勧めします。コードが読みやすくなる可能性があります。

SELECT A.name, B.name, B.address, C.name 
FROM tableA A
INNER JOIN tableB B ON A.id = B.A_ID 
INNER JOIN tableC C ON A.id = C.A_ID 
WHERE A.name = 'something'
于 2013-07-30T15:46:04.300 に答える
0

パラドの答えは正しい..

さらに、テーブル名にエイリアスを使用することで、クエリの長​​さを簡素化できます..そして、それも良い習慣です..

a.name、b.name、b.address を tableA から選択 a.id = b.A_ID で tableB b を結合

于 2013-07-30T15:57:04.690 に答える