0

内部結合に行きたいのですが、次のエラーが発生します。

#1064 - SQL 構文にエラーがあります。7 行目の 'INNER JOIN ( SELECT Chalanits.Chalanit_partno, Chalanits.Chalanit_qty FROM Chala' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

SELECT Cuspoit.`Cuspoit_partno`, Cuspoit.`Cuspoit_unitprice`, Chalanits.Chalanit_qty
FROM Cuspoit 
WHERE Cuspoit.`Cuspoit_cuspoid` =
(
SELECT Chalanits.Chalanit_cuspoid FROM Chalanits WHERE Chalanits.Chalanit_chalanid='CX-1306001' LIMIT 1
)
INNER JOIN (
SELECT Chalanits.Chalanit_partno, Chalanits.Chalanit_qty
FROM Chalanits 
WHERE Chalanits.Chalanit_chalanid='CX-1306001')
ON Cuspoit.`Cuspoit_partno`= Chalanits.Chalanit_partno

誰でも間違いを見つけるのを手伝ってもらえますか??

4

4 に答える 4

1

その SQL を使用します。

SELECT Cuspoit.`Cuspoit_partno`, Cuspoit.`Cuspoit_unitprice`, Chalanits.Chalanit_qty
FROM Cuspoit
INNER JOIN (
SELECT Chalanits.Chalanit_partno, Chalanits.Chalanit_qty
FROM Chalanits 
WHERE Chalanits.Chalanit_chalanid='CX-1306001')
ON Cuspoit.`Cuspoit_partno`= Chalanits.Chalanit_partno 
WHERE Cuspoit.`Cuspoit_cuspoid` =
(
SELECT Chalanits.Chalanit_cuspoid FROM Chalanits WHERE Chalanits.Chalanit_chalanid='CX-    1306001' LIMIT 1
)

WHERE および THE INNER JOIN コマンドを逆にしました

于 2013-06-21T17:50:09.460 に答える
1

エラーは、WHERE句が の後に来る必要があるためINNER JOINです。

しかし、それに加えて、本当に必要のないサブクエリを使用しているようです。

SELECT Cuspoit.`Cuspoit_partno`, Cuspoit.`Cuspoit_unitprice`, Chalanits.Chalanit_qty
FROM Cuspoit 
INNER JOIN Chalanits ON Cuspoit.`Cuspoit_partno`= Chalanits.Chalanit_partno
WHERE Cuspoit.`Cuspoit_cuspoid` = (
    SELECT Chalanits.Chalanit_cuspoid FROM Chalanits WHERE Chalanits.Chalanit_chalanid='CX-1306001' LIMIT 1
)
AND Chalanits.Chalanit_chalanid='CX-1306001'

また、ソートされていない LIMIT のためにランダムなレジスタ (PK と UK に依存する) を取得する可能性があるため、まだ残っているサブクエリは非常に奇妙に見えます。テーブルとChalanits同じ行が必要な場合は、次のようにします。cuspoid partnoCuspoit

SELECT Cuspoit.`Cuspoit_partno`, Cuspoit.`Cuspoit_unitprice`, Chalanits.Chalanit_qty
FROM Cuspoit 
INNER JOIN Chalanits
    ON Cuspoit.`Cuspoit_partno`= Chalanits.Chalanit_partno
       AND Cuspoit.`Cuspoit_cuspoid = Chalanits.Chalanit_cuspoid
WHERE Chalanits.Chalanit_chalanid='CX-1306001'
于 2013-06-21T18:03:58.753 に答える
1

Where 句はすべての結合の後に来ます。また、サブクエリ inteh where 句を使用する場合は、= の代わりに IN を使用してみてください。

于 2013-06-21T17:51:11.667 に答える
0

WHERE 句の後に INNER JOIN を使用することはできません

WHERE Cuspoit.`Cuspoit_cuspoid` =
(
SELECT Chalanits.Chalanit_cuspoid FROM Chalanits WHERE Chalanits.Chalanit_chalanid='CX-1306001' LIMIT 1
)
INNER JOIN (

ここにエラーがあります

于 2013-06-21T17:51:21.870 に答える