2017-03-05 71 views
-1

你好傢伙,這是我的第一個Q在stackoverflow,所以我會很清楚你我很新的PHP,所以對我來說很容易。 權等什麼我試圖做的是我哪來的關係已經設置 5桌,我試圖展示相關的categorys和平臺使用的遊戲ID注意的是,類有一個表上擁有和使然後該平臺還有其他兩個表具有遊戲ID和貓ID一起和相同的平臺和遊戲領域我在遊戲桌是: ID - >爲遊戲ID 名稱 - >爲遊戲名稱 的細節和圖像。 並在game_cat: G_ID和CAT_ID 然後thers的表其名稱和ID 和同爲平臺的類別。這些都是我的表,我正在嘗試從 enter image description here 選擇和我的SQL是:如何從5個不同的表中選擇確切的值

SELECT games.*, 
    game_cat.*, 
    category.* 
FROM games, 
    game_cat, 
    category 
WHERE games.id='game_cat.g_id' 
AND game_cat.g_id='game_cat.cat_id' 
AND game_cat.cat_id='category.id' 

,但它不能在phpmyadmin的SQL所以我做了一些研究工作,有一些所謂的加盟SQL這我不熟悉。 任何幫助表示讚賞。

+1

沒有意思是不友好的,但你的問題是非常難以閱讀 - 一些基本的標點和格式化(分段符,代碼塊等)會幫助很長的一段路。就目前而言,你的問題幾乎不可能理解,所以很難幫助你。 –

+0

看看這個爲出發點https://www.tutorialspoint.com/mysql/mysql-using-joins.htm – Yolo

+0

你見過https://dev.mysql.com/doc/refman/5.7/en/ join.html?爲了將來的發佈,請參閱http://meta.stackoverflow.com/questions/251361/how-do-i-format-my-code-blocks – chris85

回答

1

不要使用列名的單引號(當最終需要使用backtics)如果你有送花兒給人欄比賽(否則你離開加盟) 使用內部連接,你可以使用別名緊湊查詢 (我已添加也是最後兩個表...希望相關列名是正確的)

SELECT g.*,gc.*,c.* , gp.*, p.* 
FROM games g 
INNER JOIN game_cat gc on g.id = gc.g_id 
INNER JOIN category c on gc.cat_id=c.id 
INNER JOIN game_platform gp on g.id = gp.g_id 
INNER JOIN platform p on gp.paltform_id=p.id 
+0

非常感謝你它的工作原理 – monderbcb

-1

您需要根據它們之間的外鍵關係的表之間的加入(如果你不知道這是什麼,去閱讀它!)。像這樣的東西(我不知道是什麼列代表外鍵,這樣做這件事):

SELECT games.*, 
    game_cat.*, 
    category.* 
FROM games g 
    INNER JOIN game_cat gc on (g.game_id = gc.g_id) 
    INNER JOIN category c on (gc.cat_id = c.cat_id) 
WHERE games.id='game_cat.g_id' 
AND game_cat.g_id='game_cat.cat_id' 
AND game_cat.cat_id='category.id'; 

這看起來像一個標準的實施gamescategory之間的許多一對多的關係 - 這會正確嗎?

+0

您的查詢將返回與OP的查詢完全相同的結果 – bksi

+0

@bksi是的,但他說他不明白JOIN,所以我的答案。 –

+0

我沒有多對多的關係,因爲我有game_cat一個表,它具有獨特的列與類別ID的遊戲,所以它不會重複 – monderbcb

相關問題