2014-04-04 30 views
0

我對SQL和PHP相當陌生。我爲我的網站製作了一個小型搜索欄(一個學校項目),並且我有三張與第四張相關的表格。我用下面的SQL代碼(僅看第一個表我想加盟):SQL INNER JOIN加入不正確?

SELECT `band`.`bands`, `diskografi`.`FKband` 
FROM `band` 
INNER JOIN `diskografi` 
ON `band`.`id` = `diskografi`.`FKband` 

這給了我這個表:

http://puu.sh/7VnOJ.png

它看起來對我來說,這不是正確的加盟,但我認爲這可能是我不理解SQL。 現在我只能通過我的樂隊表進行搜索(可以在下面看到)。

$query = mysql_query("SELECT * FROM band WHERE bands LIKE '%$searchq%'") 

我希望能夠通過此表進行搜索,並仍然可以獲取樂隊名稱。

+0

嘗試從SELECT語句中刪除'diskografi'。只使用字段名稱。 – iamsleepy

+0

「band.bands似乎覆蓋diskografi.id」是什麼意思?這對我來說沒有多大意義。爲什麼你不顯示你的表格,內容和預期的輸出?這可能更容易修復:) – Nanne

+0

你不在查詢中選擇'diskografi.id',那麼你怎麼能說它覆蓋它? – mrjink

回答

0

當您正在進行連接時,可以從FROM子句中離開連接表。試試這個:

$query = mysql_query("SELECT * FROM band 
        INNER JOIN diskografi ON band.id = diskografi.FKband 
        WHERE bands 
        LIKE '%$searchq%'"); 

我希望這僅用於測試目的。因爲使用mysql_query不安全並且已被棄用。你最好用PDOmysqli準備好的陳述。

+0

它的工作,謝謝。 它只是用於測試,所以安全性不是我的擔心。 – Holt