需要连接2个表,但MySQL中另一个表中的某些行除外
我不是那么专业。我需要连接2个表,但状态为“Del Edge”的特定行除外。并且不允许重复行。我也尝试编写一个查询,但我认为它的形式不正确。例如,用户“t”登录并搜索名称“Bush”,因此我只需要这些数据。任何帮助都将不胜感激。以下是示例表: 链接表:需要连接2个表,但MySQL中另一个表中的某些行除外,mysql,join,Mysql,Join,我不是那么专业。我需要连接2个表,但状态为“Del Edge”的特定行除外。并且不允许重复行。我也尝试编写一个查询,但我认为它的形式不正确。例如,用户“t”登录并搜索名称“Bush”,因此我只需要这些数据。任何帮助都将不胜感激。以下是示例表: 链接表: Id(PK) source target freq 1 Bush Fisher 1 2 Lamburt Bush 6 3
Id(PK) source target freq
1 Bush Fisher 1
2 Lamburt Bush 6
3 Sam Bush 3
4 Fisher Sam 7
5 Bush Dalai 4
日志表:
username Id (FK) source target frequency status
t 5 Bush Dalai 4 Add Node
m 8 Dalai Pit 5 Del Edge
t 3 Sam Bush 3 Del Edge
联接表应为:
source target frequency
Bush Fisher 1
Lamburt Bush 6
Bush Dalai 4
我的问题是:
"SELECT source, target, frequency from links, logs
where (links.source=Bush || links.target= Bush) &&
where not exists
(SELECT source, target, frequency FROM logs
WHERE (links.id = logs.id && logs.status=Del Edge)";
下面的内容应该可以做到这一点
SELECT DISTINCT k.source,
k.target,
k.frequency
FROM links k
LEFT JOIN logs g
ON g.id = k.id
WHERE IFNULL(status, '') != 'Del Edge'
AND 'Bush' IN( k.source, k.target )
希望这有帮助
此外,下面的提琴说明了上述答案事实上是正确的:您能提供所需的结果吗?所需的结果是“连接表”。