jquery - 检索标签兄弟时进行标签搜索

标签 jquery mysql sql database

如果我需要从表 A 中获取具有表 B 中的匹配标记的行,我将只执行一个简单的 JOIN ON/WHERE B.name=X。但是 MySQL 将只返回来自 A 的行和来自 B 的匹配标签。

如果我想从表 A 中检索在表 B 中具有匹配项的所有内容,并且同时从表 B 中检索所有链接到表 A 中的行,我该怎么办.

A:
a.id
1
2
3

B: 
b.id   | b.a_id   | b.name
1      | 1        | foo
2      | 1        | bar
3      | 1        | derp
4      | 2        | foo
5      | 2        | derp
6      | 3        | bar

A search for "foo" should then return
a.id   | b.id     | b.a_id   | b.name
1      | 1        | 1        | foo
1      | 2        | 1        | bar
1      | 3        | 1        | derp
2      | 4        | 2        | foo
2      | 5        | 2        | derp

感谢我能得到的任何帮助。谢谢!

最佳答案

SELECT a.id, b.id, b.name FROM a 
RIGHT JOIN b ON (a.id = b.a_id) 
WHERE a.id IN (SELECT b.a_id FROM b WHERE b.name = 'foo')

我想这就是您要找的。可能不是最高效的解决方案,但我希望它能奏效。

编辑:

SELECT a_new.id, b.id, b.name FROM 
    (SELECT b.a_id FROM b WHERE b.name = 'foo') AS a_new
RIGHT JOIN b ON (a_new.id = b.a_id)

我不认为它会比这更好,基本上你不需要再查询表 a 了;您从 b 中获取与“foo”匹配的所有行,然后将这些行与所有相关项连接起来。

关于jquery - 检索标签兄弟时进行标签搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12548981/

相关文章:

javascript - Jquery for循环设置所选选项属性的输入值仅更改最后一个值

mysql - SQL查询中的时间戳和增量值

javascript - Yepnope 未按预期工作

javascript - Jquery 悬停和焦点应用类以及数据延迟迭代

jquery - Bootstrap 困境。调整 Google map 大小

php - Laravel Mysql 从两个表中选择并在第三个表上连接结果

c# - 异常 : Ambiguous column name

MySQL 欧洲字符

mysql - 从 sql 备份文件更新 1 列

mysql - 左加入生效日期