我試圖製作一個功能有點像數字貼紙專輯的頁面。我的SQL知識不是很好,所以我需要一些幫助來完成我迄今爲止的工作。簡單的數字貼紙專輯的mysql查詢和php腳本
我想顯示所有可用貼紙的列表,但也顯示用戶是否有貼紙。所以這個想法是顯示空盒子(物品)列表,然後在用戶擁有貼紙的情況下在盒子內顯示圖像。
我有兩個相關的表稱爲「項目」和「庫存」。商品包含所有可用的貼紙,而廣告資源包含用戶擁有的貼紙。
這裏是可用列:
CREATE TABLE items (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255)
) Engine=InnoDB;
CREATE TABLE inventory (
userid INT UNSIGNED,
itemid INT UNSIGNED,
-- FOREIGN KEY (userid) REFERENCES users (id),
FOREIGN KEY (itemid) REFERENCES items (id),
UNIQUE (itemid, userid)
) Engine=InnoDB;
我願意到去這樣做使用PHP和MySQL的最佳方法的建議,但我想我需要的是一個查詢返回一個列表的所有項目名稱,然後是另一列來標記用戶是否擁有該項目。然後我可以循環遍歷php中的項目,然後使用基於第二列的條件來顯示貼紙是否存在。
到目前爲止,我已經得到儘可能下面的查詢,但它只需要顯示當前用戶的項目。堅持'where'子句不起作用,因爲它只顯示庫存項目而不顯示NULL項目(也就是說,它不包含所有項目)。
SELECT items.name, inventory.userid
FROM items
LEFT JOIN inventory ON items.id = inventory.itemid
SELECT items.name, inventory.userid
FROM items
LEFT JOIN inventory ON items.id = inventory.itemid
WHERE inventory.userid = '$userid'
正是我需要的,謝謝。現在看起來很明顯:) – spengos