gpt4 book ai didi

php - 比较 2 个表之间的 mysql id 并显示所有匹配 id echo yes

转载 作者:行者123 更新时间:2023-11-30 23:08:22 28 4
gpt4 key购买 nike

我想比较 2 个表之间的 mysql id 并显示匹配 id echo yes 的所有名称。

我有 2 个表,一个是酒,另一个是用户。我将使用餐酒中的唯一 ID 列。但是在用户表中,我将使用不唯一的 wine_id 列。

这是 mysql 代码,将从餐 table 酒和用户中获取匹配的 id。

$sql="SELECT id FROM `winelist` w WHERE page = 'Chardonnay USA' and
EXISTS(
SELECT wine_id FROM `user_wine_history` u WHERE user_name = 'bon'
AND u.wine_id = w.id);";
$result= mysql_query($sql);

while($data= mysql_fetch_array($result)) {
}

这是列出wine中所有名称的代码。

$sql2 ="SELECT id, name, year, grape, price, instock FROM winelist WHERE page ='Chardonnay USA';";
$result2 = mysql_query($sql2);

while($data2 = mysql_fetch_array($result2)) {
}

我尝试在 listing name while 循环中使用此代码,但没有成功。

if($data2['id'] == $data['id']) {
echo "yes";
}
else
{
echo "fail";
}

有人可以给我一些建议如何解决这个问题吗?提前谢谢你。

最佳答案

您可以改用 LEFT JOIN 并在查询中使用 CASE 表达式执行此操作,例如:

SELECT 
w.id , w.page, w.name, w.year,
u.user_name, u.id user_id, u.wine_id uwine_id,
CASE
WHEN u.id IS NOT NULL THEN 'Yes'
ELSE 'No'
END AS IsMatching
FROM `winelist` w
LEFT JOIN `user_wine_history` u ON w.id = u.wine_id
AND w.page = 'Chardonnay USA'
AND u.user_name = 'bon';

这将选择一个新列 IsMatching,其值为 yesno 以指示 Wine id 是否为是否在其他表中找到。

关于php - 比较 2 个表之间的 mysql id 并显示所有匹配 id echo yes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824658/

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