2014-10-20 118 views
0

我正在處理傳遞給我的數據庫。它有大約25個表格,和一個非常有問題的查詢系統,一段時間以來都不能正常工作。我想,不是試圖錯誤地測試現有的代碼,而是從頭開始。在進入它之前,我想說,「我沒有要求任何人爲我構建代碼」。我不是那麼懶惰,我只想知道,最好的方式是佈置代碼?現有的查詢使用「JOIN」將所有表格的結果合併到一個變量中,並將其吐出到查詢中。我在其他顯示這些代碼的問題中被告知,它太多了,並且有太多的錯誤來試圖找出導致中斷的原因。SQL加入大量表格並比較查詢以返回特定結果

什麼是最有效的方式來查詢這些引用彼此的表?

例如:人選車年,製造,型號。 PHP然後收集這些信息,然後查詢SQL數據庫以查找哪些部件與年份,車輛ID和部件兼容。然後它使用這些結果來提取具有匹配的汽車模型ID或OR車輛ID的零件(因爲數據庫構建得非常不穩定,並比較所有不同的表格以生成:零件,說明,價格,零件號,SKU編號,零售商筆記,軸距,動力傳動系統兼容性等

我一直在爲此工作了兩個星期,而且我正在接近我的最後期限,幾乎沒有進展,我即將取消他們的數據庫,只是做一週的數據錄入,並重建他們的混亂,如果它會更容易,但如果我可以使用現有的一堆廢話,他們給了我,並節省一些時間,我寧願它。更容易做幾個查詢並比較結果,然後使用這些結果查詢更多結果,並按部就班地完成像這樣的一步,還是一個巨大的查詢,一次比較一切更有效?

我應該使用JOIN並一次拉出所有表並比較或將輸入傳遞給各個變量,並將PHP傳遞到客戶端的JavaScript以節省服務器負載?破解代碼是否更簡單,以便我可以確定突破點,或者使用一個較長的字符串減少查詢時間和服務器負載?這是一個非常複雜的問題,但我只是想確保沒有太多的答覆要求澄清瑣碎的領域。我主要就如何處理這種複雜的情況尋求最好的建議。

+0

JOIN是連接兩個或多個表之間數據的標準方式 – 2014-10-20 02:45:29

+0

我看到JOIN在這種情況下非常有用,但是它可以有效地用於JOIN和多個表之間的多個值的交叉索引其他24個表中沒有cms的行中的其他相關列?對於那些應該更簡單的東西來說似乎有點過分。我可以看到如何設置可能是有益的,但它的方式,使得當一個項目被添加到庫存時,所有25個表格都需要更新。對我來說,這似乎是盧達克斯。 – 2014-10-20 09:33:55

+0

也許他們的語法錯了。任何人都可以給我一個很好的這種方式的代碼通用示例?獲取yearID,與modelyear表中的yearID匹配,然後將yearID =與model表中的VID進行匹配,然後將modelID與make表中的IdModel進行匹配?這僅僅是一個開始。如果我能夠通過這種比較工作,我可以讓整個查詢工作得足夠。 – 2014-10-20 09:41:41

回答

-1

重建數據庫,然後做一個php導入來導出數據。