大家好,我创建了一个灯具列表。
$result = mysql_query("SELECT date FROM ".TBL_FIXTURES." WHERE compname = '$comp_name' GROUP BY date");
$i = 1;
$d = "Start";
while ($row = mysql_fetch_assoc($result))
{
$odate = $row['date'];
$date=date("F j Y", $row['date']);
echo "<p>Fixture $i - $d to $date</p>";
}
正如您从查询中看到的那样,日期显示在 fixtures 表中。 我的系统的工作方式是,当一个夹具被“播放”时,它就会从这个表中删除。因此,当整轮比赛结束后,此表中将不会有该轮比赛的任何日期。它们将在另一个表中。
无论如何,我是否可以同时运行其他日期查询,如果结果表中没有日期,则只显示 fixtures 表中的日期?
"SELECT * FROM ".TBL_CONF_RESULTS."
WHERE compid = '$_GET[id]' && type2 = '2' ORDER BY date"
那将是第二个查询!
从这里开始编辑...
无论如何我可以从两个表中选择日期,然后只在有匹配项时使用一个。然后使用日期行(GROUPED BY)来填充我的查询?这可能吗?
最佳答案
听起来你想 UNION 两个结果集,类似于以下内容:
SELECT f.date FROM tbl_fixtures f
WHERE f.compname = '$comp_name'
UNION SELECT r.date FROM tbl_conf_results r
WHERE r.compid = '$_GET[id]' AND r.type2 = '2'
GROUP BY date
这应该选择 f.date 并从 r.date 添加尚未在结果集中的行(至少这是 T-SQL 的行为)。显然它可能无法很好地扩展,但是有很多关于它的博客(搜索:UNION T-SQL)。
关于php - 两个表的逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3048068/