大家好,这是我的第一个问题,如果你能帮助我,我将非常感激。
我在mysql中有一个这样的表
//table items
id | item_name | description | link | category_id | is_active
我有另一张这样的表
//table categories
id category_name | cat_description | is_active
我希望获取category_name
中的所有数据,并在item_name
列开启的情况下获取is_active
的所有内容,以及类别is_active
列是否已启用。
我试图创建一个能够使用html内容检索所有数据的函数,并且只是在某些条件为真的情况下。
我的功能是这样的:
function getCatAndItems(){
include "conn.php";
$petition = mysqli_query($conn,"SELECT * FROM items,categories WHERE is_active=1");
while ($row = mysqli_fetch_array($petition)) {
$filename = $row['nombre'];
$url = $row['url_document'];
echo "<a href=../docs/files/$url'><li> ".$filename."</li></a>";
}
}
我的目标是带来类别,如果类别处于活动状态,并且category_id中的items表与类别ID和is_active
相同,它还会带来共享的items表中的数据相同的数字。
我希望你理解我,希望你能帮助我,谢谢
答案 0 :(得分:1)
您可以使用JOIN
SELECT items.name, items.description, items.link, categories.category_name, categories.cat_description
FROM categories
JOIN items
ON categories.id = items.category_id
WHERE categories.is_active = 1
AND items.is_active = 1;
答案 1 :(得分:0)
这两个表之间的简单inner join
可以完成工作。
SELECT
items.name,
items.description,
items.link,
categories.category_name,
categories.cat_description
FROM categories
INNER JOIN items ON categories.id = items.category_id
WHERE categories.is_active = 1
AND items.is_active = 1
答案 2 :(得分:0)
以下是您的查询:
select i.id,i.item_name,i.description,i.link,i.category_id,i.is_active,c.category_name
from items as i left join categories as c on i.category_id=c.id where
i.is_active=1 and c.is_active=1;