Php 如何从B表中只选择一行?
我有两张桌子: sma_dbPhp 如何从B表中只选择一行?,php,database,select,Php,Database,Select,我有两张桌子: sma_db +----+----------+-------+ | ID | title | catid | +----+----------+-------+ | 1 | Hi | 4 | | 2 | Hello | 4 | | 3 | Test | 5 | +----+----------+-------+ SMAU文件 +----+----------+---------+ | ID | name |
+----+----------+-------+
| ID | title | catid |
+----+----------+-------+
| 1 | Hi | 4 |
| 2 | Hello | 4 |
| 3 | Test | 5 |
+----+----------+-------+
SMAU文件
+----+----------+---------+
| ID | name |entry_id |
+----+----------+---------+
| 1 | a.jpg | 1 |
| 2 | b.jpg | 1 |
| 3 | c.jpg | 2 |
+----+----------+---------+
我的问题是:
$sql = mysql_query("SELECT * FROM sma_db
LEFT OUTER JOIN sma_files
ON sma_db.id = sma_files.entry_id
WHERE catid = '4'") or die(mysql_error());;
while($affcom = mysql_fetch_assoc($sql)){
$title = $affcom['title'];
$name = $affcom['name'];
echo $title;
echo $name;
}
如何从SMAU文件表格中仅选择一行
上述查询的输出:
Hi a.jpg
Hi b.jpg
Hello c.jpg
我需要的输出:
Hi a.jpg
Hello c.jpg
使用
分组依据
SELECT * FROM sma_db
LEFT OUTER JOIN sma_files
ON sma_db.id = sma_files.entry_id
WHERE catid = '4'
GROUP BY `entry_id`
尝试下面的查询
SELECT * FROM `sma_db`
INNER JOIN `sma_files`
ON `sma_db`.`id` = `sma_files`.`entry_id`
WHERE `sma_db`.`catid` = '4'"
使用限制1它会给你一个结果我不需要一个结果,我需要所有的结果而不重复第二张表你已经问过这个问题了这个问题有什么不同吗?请回复我上面的评论^-似乎很清楚你使用了不同的表名和列。否则,我将关闭它作为一个确切的副本。请。它们不再得到维护,而是在使用。改为了解,然后使用。限制1没有帮助,问题更新请仔细阅读。限制0,1没有帮助,我需要所有结果,但不重复第二个表格问题更新请仔细阅读。@SaeedAknan“完美,仍然有一个问题:如果我提交第一个表格的一条记录而不上载图像(xx.jpg)对于第二个表,它不会出现在输出中”-就我而言,您应该接受这个答案。你所问的完全是无关的,应该作为一个新问题发布。原始问题中没有支持“新”请求的代码。
SELECT * FROM `sma_db`
INNER JOIN `sma_files`
ON `sma_db`.`id` = `sma_files`.`entry_id`
WHERE `sma_db`.`catid` = '4'"