2013-03-21 203 views
0

我現在有2個表,看起來像這樣:將兩個表與來自不同查詢的數據合併?

enter image description here

這些2個表中的代碼如下所示:

<table width="600" border="1"> 
<tr> 
    <th width="91"> <div align="center">Mail_ID </div></th> 
    <th width="91"> <div align="center">Status </div></th> 
    <th width="91"> <div align="center">Datum </div></th> 
</tr> 
<?php 
$j = 0; 
while($objResult2 = mysql_fetch_array($objQuery2)) 
{ 
$j++; 
?> 
<tr> 
    <td><div align="center"><?=$objResult2["Mail_ID"];?> </div></td> 
    <td><div align="center"><?=$objResult2["Status"];?> </div></td> 
    <td><div align="center"><?=$objResult2["Datum"];?> </div></td> 
</tr> 
<?php 
} 
?> 
</table> 
<br/> 
<table width="600" border="1"> 
<tr> 
    <th width="91"> <div align="center">ID </div></th> 
    <th width="91"> <div align="center">Titel </div></th> 
    <th width="91"> <div align="center">Subscribe </div></th> 
    <th width="91"> <div align="center">Unsubscribe </div></th> 
</tr> 

<?php for ($i = 0; $objResult1 = mysql_fetch_array($objQuery1); $i++) : ?> 
<tr> 
    <td><div align="center"><?=$objResult1["ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["ID"];?>"> </div></td> 
    <td><div align="center"><?=$objResult1["Titel"];?> </div></td> 
    <td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="10"> </div></td> 
    <td><div align="center"><input type="radio" name="sub[<?php echo $i; ?>]" value="90"> </div></td> 
</tr> 
<?php endfor; ?> 

</table> 

而且查詢和變量是這樣的:

$strSQL1 = "SELECT ID, Titel FROM Mail"; 
$strSQL2 = "SELECT * FROM Subscriptions, 
(SELECT MAX(ID) as ids, Mail_ID FROM Subscriptions 
    WHERE Klant_ID = '".$_GET["ID"]."' GROUP BY Mail_ID) table2 
WHERE ID=table2.ids"; 
$objQuery1 = mysql_query($strSQL1); 
$objQuery2  = mysql_query($strSQL2); 

現在我想合併這兩個表,看起來像這樣:

enter image description here

我不能得到這個工作,因爲我的一切嘗試都混合起來,由於2路是在那裏。我希望你們瞭解我的問題,我添加了儘可能多的信息和圖片,使一切都清楚^^如果你仍然有問題,只要問問他們的評論。歡迎任何幫助!

+0

相關訂閱行看看[SQL'JOIN'](http://en.wikipedia.org/wiki/Join_(SQL))。參見[MySQL - Join 2 tables]中的例子(http://stackoverflow.com/questions/10230438/mysql-join-2-tables) – Boaz 2013-03-21 14:17:10

回答

0

我不知道這對你是一個完整的解決方案,但它應該是一個開始:

SELECT Mail.ID Mail_ID, Mail.Titel, Subscriptions.status, Subscriptions.Datum, Subscriptions.Subscribe, Subscriptions.Unsubscribe 
FROM Mail left join Subscriptions on Mail.ID = Subscriptions.Mail_ID 
0

使用SQL加入,形成一個返回的所有數據單個SQL查詢。然後只使用其中一個循環。如其他人已經說

SELECT ID, Titel, Subscriptions.* FROM Mail INNER JOIN Subscriptions ON Subscriptions.ID = Mail.ID ... 
0

你應該使用聯接:

SQL可能是這樣的。通過連接兩個或多個表你並不需要使用多個while循環和代碼將清潔劑這樣

SELECT 
    Mail.ID Mail_ID, 
    Mail.Titel, 
    Subscriptions.status, 
    Subscriptions.Datum, 
    Subscriptions.Subscribe, 
    Subscriptions.Unsubscribe 
FROM 
    Mail 
LEFT JOIN Subscriptions 
ON (Subscriptions.Mail_ID = Mail.ID) 

其中之一連接類型應爲你工作:LEFT JOIN或INNER JOIN。

HTML應該是這樣的:

<table width="600" border="1"> 
<tr> 
    <th width="91"> <div align="center">Mail_ID </div></th> 
    <th width="91"> <div align="center">Status </div></th> 
    <th width="91"> <div align="center">Datum </div></th> 
    <th width="91"> <div align="center">Titel </div></th> 
    <th width="91"> <div align="center">Subscribe </div></th> 
    <th width="91"> <div align="center">Unsubscribe </div></th> 
</tr> 
<?php 
while ($objResult2 = mysql_fetch_array($objQuery2)) 
{ 
?> 
<tr> 
    <td><div align="center"><?=$objResult2["Mail_ID"];?> </div></td> 
    <td><div align="center"><?=$objResult2["Status"];?> </div></td> 
    <td><div align="center"><?=$objResult2["Datum"];?> </div></td> 
    <td><div align="center"><?=$objResult1["Mail_ID"];?><input type="hidden" name="mailid[]" value="<?=$objResult1["Mail_ID"];?>"> </div></td> 
    <td><div align="center"><?=$objResult1["Titel"];?> </div></td> 
    <td><div align="center"><input type="radio" name="sub[<?=$objResult1["Subscriptions_ID"];?>]" value="10"> </div></td> 
    <td><div align="center"><input type="radio" name="sub[<?=$objResult1["Subscriptions_ID"];?>]" value="90"> </div></td> 
</tr> 
<?php 
} 
?> 
</table> 

如果使用LEFT JOIN所有郵件行將是可見的,但如果你使用INNER JOIN只有那些郵件的行將可見這與它

相關問題