0
MySQL表方案,那麼我的問題是,我想店某種產品,這些產品在自己的表和我想選擇一些成獨具特色的/強調產品表,它將存儲每個表中選定行的ID,以在網站的主頁上顯示這些特色產品。的功能/強調產品
從他們的表格中選擇特色產品後,我想自己訂購他們將如何列出,所以我認爲需要一個新表格來存儲特色產品的ID和訂單,但我無法想象如何正確連接這些表格。
我想了很多如何解決這個問題,但是,我希望有人會知道正確的答案!
MySQL表方案,那麼我的問題是,我想店某種產品,這些產品在自己的表和我想選擇一些成獨具特色的/強調產品表,它將存儲每個表中選定行的ID,以在網站的主頁上顯示這些特色產品。的功能/強調產品
從他們的表格中選擇特色產品後,我想自己訂購他們將如何列出,所以我認爲需要一個新表格來存儲特色產品的ID和訂單,但我無法想象如何正確連接這些表格。
我想了很多如何解決這個問題,但是,我希望有人會知道正確的答案!
創建第二個表:
CREATE TABLE FEATURED_PRODUCTS (
ID INTEGER NOT NULL,
PRODUCT_ID INTEGER NOT NULL,
PRODUCT_ORDER INTEGER NOT NULL
)
然後,只需用你的原始表,當你想找到你的特色產品加盟:
SELECT P.*
FROM PRODUCTS P
INNER JOIN FEATURED_PRODUCTS FP ON P.ID = FP.PRODUCT_ID
ORDER BY FP.PRODUCT_ORDER
它可能值得指出的FEATURED_PRODUCTS表是ID不是絕對必要的,我只是不喜歡沒有主鍵列的表。
---- ----編輯
更完整的例子:
CREATE TABLE FRUIT_PRODUCTS (
ID INTEGER NOT NULL,
NAME VARCHAR(255),
PRICE INTEGER NOT NULL,
FARM_OF_ORIGIN VARCHAR(255)
)
CREATE TABLE BREAD_PRODUCTS (
ID INTEGER NOT NULL,
NAME VARCHAR(255),
PRICE INTEGER NOT NULL,
TYPE_OF_GRAIN VARCHAR(255)
)
CREATE TABLE MEAT_PRODUCTS (
ID INTEGER NOT NULL,
NAME VARCHAR(255),
PRICE INTEGER NOT NULL,
ANIMAL VARCHAR(255)
)
CREATE TABLE FEATURED_PRODUCTS (
ID INTEGER NOT NULL,
TABLE_NAME VARCHAR(255),
PRODUCT_ID INTEGER NOT NULL,
PRODUCT_ORDER INTEGER NOT NULL
)
然後,你可以加入他們都正是如此:
SELECT FP.TABLE_NAME, P.ID, P.NAME, P.PRICE, P.FARM_OF_ORIGIN,
NULL AS TYPE_OF_GRAIN, NULL AS ANIMAL
FROM FEATURED_PRODUCTS FP
INNER JOIN FRUIT_PRODUCTS P ON FP.TABLE_NAME = 'FRUIT_PRODUCTS'
AND FP.PRODUCT_ID = P.ID
UNION
SELECT FP.TABLE_NAME, P.ID, P.NAME, P.PRICE, NULL AS FARM_OF_ORIGIN,
P.TYPE_OF_GRAIN, NULL AS ANIMAL
FROM FEATURED_PRODUCTS FP
INNER JOIN BREAD_PRODUCTS P ON FP.TABLE_NAME = 'BREAD_PRODUCTS'
AND FP.PRODUCT_ID = P.ID
UNION
SELECT FP.TABLE_NAME, P.ID, P.NAME, P.PRICE, NULL AS FARM_OF_ORIGIN,
NULL AS TYPE_OF_GRAIN, P.ANIMAL
FROM FEATURED_PRODUCTS FP
INNER JOIN MEAT_PRODUCTS P ON FP.TABLE_NAME = 'MEAT_PRODUCTS'
AND FP.PRODUCT_ID = P.ID
這會給你一個結果集包含所有特色產品。 請注意,這是未經測試的,但應該通過得到想法。
。 。 'order'對於一個列來說是個糟糕的名字,因爲它是一個MySQL保留字。 –
@GordonLinoff絕對正確...現在更新。 – Lucas
是的,這適用於某種產品,但我有3種類型的產品,您不能在一列上加入3張表格。或者,也許我應該創建列到每個表,以加入他們的特色產品表? – user2042930