0

この SQL 構文がありますが、機能せず、次のエラーが表示されます。

「#1248 - すべての派生テーブルには独自のエイリアスが必要です」.

私たちを手伝ってくれますか?

SELECT *
FROM produse_comenzi
JOIN comenzi ON comenzi.id_comanda = produse_comenzi.id_comanda
JOIN (SELECT DISTINCT numar_factura FROM facturi)
ON facturi.id_comanda = comenzi.id_comanda
4

3 に答える 3

1

2 番目の結合では、サブクエリを使用していますが、結果にエイリアス (つまり、結果を識別するもの) を指定していません。

SELECT *
  FROM produse_comenzi
  JOIN comenzi 
    ON comenzi.id_comanda = produse_comenzi.id_comanda
  JOIN (SELECT DISTINCT numar_factura FROM facturi) -- has no alias
    ON facturi.id_comanda = comenzi.id_comanda

やったほうがいい

SELECT *
  FROM produse_comenzi
  JOIN comenzi 
    ON comenzi.id_comanda = produse_comenzi.id_comanda
  JOIN (SELECT DISTINCT numar_factura, id_comanda FROM facturi) AS facturi
    ON facturi.id_comanda = comenzi.id_comanda
于 2013-07-08T09:02:39.023 に答える
0

テーブルとして扱われている各サブクエリにエイリアスを追加する必要があります。

SELECT *
FROM produse_comenzi
JOIN comenzi ON comenzi.id_comanda = produse_comenzi.id_comanda
JOIN (SELECT DISTINCT numar_factura FROM facturi) x
ON x.id_comanda = comenzi.id_comanda

ここでは、結果セットに名前を付けてx、結合条件で参照しています。「×」はお好きなものに変えてください。

于 2013-07-08T09:01:40.333 に答える
0

これで修正されるはずです:

(異なる結果セットと選択を区別するために SQL が必要です)

SELECT * 
FROM produse_comenzi AS table_1  
JOIN comenzi AS table_2  
ON table_2.id_comanda = table_1.id_comanda  
JOIN (SELECT DISTINCT numar_factura FROM facturi AS table_3)  
ON table_3.id_comanda = table_2.id_comanda
于 2013-07-08T09:20:15.927 に答える