Php 3表连接,并在其中添加内容
这就是我在新桌子上工作的东西。我想让它显示ideaTitle,每个ideaTitle的所有反馈(上面有),然后是我们在下面的sql代码中得到的投票总数(布尔值1和0)。我只是在用正确的方式把它们结合起来。将其分解为两个单独的sql命令是否更好Php 3表连接,并在其中添加内容,php,mysql,sql,Php,Mysql,Sql,这就是我在新桌子上工作的东西。我想让它显示ideaTitle,每个ideaTitle的所有反馈(上面有),然后是我们在下面的sql代码中得到的投票总数(布尔值1和0)。我只是在用正确的方式把它们结合起来。将其分解为两个单独的sql命令是否更好 $sql_select = "SELECT p.ideaTitle, f.feedback, f.contact FROM ideas p RIGHT JOIN feedback f ON f.ideaSlug = p.ideaSl
$sql_select = "SELECT p.ideaTitle, f.feedback, f.contact
FROM ideas p
RIGHT JOIN feedback f ON f.ideaSlug = p.ideaSlug
ORDER BY p.ideaDateTime, f.dateTime
";
我用来显示数据的当前代码
SELECT "p.ideaTitle,
SUM(CASE WHEN v.vote = '1' THEN 1 ELSE 0 END) AS yesCount,
SUM(CASE WHEN v.vote = '0' THEN 1 ELSE 0 END) AS noCount
FROM ideas p
LEFT JOIN votes v ON v.ideaSlug = p.ideaSlug
GROUP BY p.ideaSummary
ORDER BY yesCount DESC
LIMIT 20";
$result=mysql\u query($sql\u select,$link)或die(“插入失败:”.mysql\u error());
$x=0;
while($row=mysql\u fetch\u数组($result)){
如果($row['ideaTitle']!=$previousTitle){
?>
对:
不:
我将把它作为两个独立的查询来完成。你可以在一个查询中完成,但是这样做没有真正的目的
如果您真的想在一个查询中执行此操作,它可能会如下所示:
$result = mysql_query($sql_select,$link) or die("Insertion Failed:" . mysql_error());
$x=0;
while ($row = mysql_fetch_array($result)) {
if ($row['ideaTitle'] != $previousTitle) {
?> <h3> <?php echo stripslashes($row['ideaTitle']); ?> </h3>
<h4> Yes: <?php // echo $number of yes votes; ?> </h4>
<h4> No: <?php // echo $number of no votes; ?></h4>
<?php } ?>
<blockquote>
<p><em> <?php echo stripslashes($row['feedback']); ?> </em> </p></blockquote>
<?php
$previousTitle = $row['ideaTitle']; ?>
<?php }
然而,我看不出这样做有什么好处,我也看到了一些缺点。在第二个查询中,为什么要按p.Ideasummary而不是p.ideatitle分组?idea表的主键是什么?是ideaSlug
?@Mark-是的@JNK可能是我的错误-他们总是决定使用2语句ute,但我不知道如何将两者联系起来-有什么想法吗?
SELECT p.ideaTitle, f.feedback, f.contact, p2.yesCount, p2.noCount
FROM ideas p
LEFT JOIN feedback f ON f.ideaSlug = p.ideaSlug
LEFT JOIN (
SELECT
p.ideaSlug,
SUM(CASE WHEN v.vote = '1' THEN 1 ELSE 0 END) AS yesCount,
SUM(CASE WHEN v.vote = '0' THEN 1 ELSE 0 END) AS noCount
FROM ideas p
LEFT JOIN votes v ON v.ideaSlug = p.ideaSlug
GROUP BY p.ideaSlug
) p2
ON p.ideaSlug = p2.ideaSlug