2013-06-21 31 views
0

我想進行內部連接並獲取波紋管錯誤:INER JOIN錯誤

#1064 - 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊「INNER JOIN(SELECT Chalanits.Chalanit_partno,Chalanits.Chalanit_qty從沙拉」在第7行

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 

誰能幫助我發現其中的錯誤??

+0

欲瞭解更多信息:http://www.w3schools.com/sql/sql_join_inner.asp – rkpasia

回答

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和INNER JOIN COMAND

1

Where子句來畢竟的加入。而當你使用子查詢inteh where子句嘗試使用IN而不是=時。

+0

在他的案件'='而不是'IN'很好,因爲有'LIMIT 1'。但它聞起來不好... xD – MatheusOl

0

你不能在where子句

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

這裏後INNER JOIN是錯誤

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' 

此外,仍然是子查詢看起來非常奇怪,因爲它得到一個可能是隨機的寄存器(這取決於的PK和UKS),因爲沒有排序的限制。如果你想Chalanits行與同cuspoidCuspoitpartno,那麼你想這樣的:

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'