如果我需要這樣的查詢,我會使用類似
$sql = "SELECT c.id AS cartid,c.*,cu.* FROM c,cu WHERE cu.id = c.customerId";
$result = mysql_query($sql) or die(mysql_error());
這裏的關鍵是要對任何重複的列名,如您的SQL查詢「身份證」創建別名查詢,因此,例如
users.id AS user_id
這讓我們重新定義users.id所以這是我們作爲USER_ID頁面可用時,我們創建變量。使用我目前的網絡應用程序,我確實有2個表格帶有重複的「id」列,我已經測試了此解決方案。
爲了演示如何幫助實施工作解決方案,我使用的是PHP,如果它與您無關並且使用您的首選語言進行編碼,則可以忽略它。
的SQL輸出可以被用來作爲
$cartid = $result['cartid'];
$customerid = $result['customerId'];
與變量$ cartid,$客戶ID和其他任何指定的是在你的PHP使用avaliable,例如
<? echo $customerid.', your are currently using '.$cartid.', please make sure this is correct'; ?>
爲了幫助你定義你的變量,你可以做類似的事情
print_r($result);
這將顯示一個像
Array ([id] => 1 [user_id] => 2 [shop_name] => My Shop)
陣列要創建變量只需定義$結果作爲數組ID喜歡
$id = $result['id'];
$customerid = $result['user_id'];
$shopname = $result['shop_name'];
依此類推,直到你需要定義是所有變量。
這是你在找什麼?您可能需要調整查詢字符串,因爲這是來自上次大約兩年前沿着這些行做的事情的內存。
我希望它有幫助。
注意:它開始誤導我,所以我從服務器上拉出了舊代碼,我已經編輯了這篇文章以糾正之前使用的語法,我發佈的以前的方法不受PHP支持,但是此替代方法期望的結果,對原始查詢進行最小的更改:)
通常,在select子句中使用*是一個混亂的做法,應該避免。解決方案是使用明確的列引用和明確的別名。 – symcbean 2011-06-09 11:37:34
MySQL沒有「對象」。你打算如何達到這個產出? – 2011-06-09 14:01:36