2011-09-08 135 views
0

我有兩個表: 項目:與左加入MySQL查詢?

| Item| 
    A 
    B 
    C 

userItems:

| UID | Item 
    1  A 
    1  C 

該循環從表項示出了數據:

$data = mysql_query("SELECT * FROM `Items`ORDER by `Icons` ASC"); 

while($row = mysql_fetch_array($data)) 
    { 
    echo $row['Item']; 
    echo "Unlock"; 
    } 

基本上我需要顯示解鎖,而不是如果具有UID = $ uid的用戶擁有該項目,請解鎖。

此查詢獲取用戶的項目:

$data = mysql_query("SELECT * FROM `userItems` WHERE `UID` = '$uid'"); 

我認爲解決方案是一個左連接,但我不知道該怎麼做。我怎樣才能使它工作?

+0

爲什麼你從'Items'表查詢呢?你在'userItems'中也有'Item'列。 – zerkms

+0

我可以在註冊時將所有項目插入'userItems'並添加另一列,但如果我想在未來添加新項目,則更容易擁有不同的表格。 – lisovaccaro

+0

@zerkms我認爲'Items'表中比單個列更多,'Icons'例如 – Phil

回答

1
SELECT Items.*, useritems.UID FROM `Items` 
    left join useritems on Items.Item=useritems.Item 
    ORDER by `Icons` ASC 

就用邏輯在PHP中顯示時自動解鎖用戶$行[「items.UID」]等於$ UID

+0

我會改變'* '到'Items,*,userItems.UID'。只能使用連接表來遵守單個'*'。誰知道你要回去 – Phil

+0

你說得對。我不知道可能在這些表中潛伏着什麼。 ;) –

+0

謝謝!它完美地工作 – lisovaccaro