gpt4 book ai didi

php - 从同一个表中选择多行

转载 作者:行者123 更新时间:2023-11-29 07:47:26 24 4
gpt4 key购买 nike

我有两个表“图书”和“类别”。如何显示“book”表中的所有行?请注意,category(图书表)cat_name(类别表)之间存在连接。

图书

id   category    title
1 2 a title here
2 2 a title here
3 1 a title here
4 Comedy a title here
5 1 a title here
6 Horror a title here

类别表格

id       cat_name   
---- -------
1 Language
2 Kids

目前我正在使用以下 SQL 查询,它似乎只显示具有该类别数字的行,而我想要所有数据。目前我的 html 表格不显示第 4 行和第 6 行。

SELECT b.id, b.title, b.category, b.author, b.isbn, b.publicationYear,
c.cat_name
FROM book AS b
INNER JOIN category AS c ON b.category = c.id

我的 php 示例

echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['title'] . '</td>';
echo '<td>' . $row['cat_name'] . '</td>';
echo '<td>' . $row['author'] . '</td>';
echo '<td>' . $row['isbn'] . '</td>';

对 php/mysql 相当陌生,因此欢迎任何建议或指导。

最佳答案

您正在执行内部联接,这将仅返回匹配的项目。如果您想要左表中的所有项目,请使用 left join 代替

    SELECT b.id, 
b.title,
b.category,
b.author,
b.isbn,
b.publicationYear,
c.cat_name
FROM book AS b
left JOIN
category AS c
ON
b.category = c.id

更新:

执行左连接将显示 cat_namecategory 表不匹配的 null

解决方法如下

SELECT 
b.id,
b.title,
b.category,
b.author,
b.isbn,
b.publicationYear,
case
when cast(b.category as unsigned)= 0 then b.category
else c.cat_name
end as cat_name
FROM book AS b
left JOIN category AS c ON b.category = c.id

关于php - 从同一个表中选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27355588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com