【问题标题】:Select all elements from a table, and check if they match to another table从一个表中选择所有元素,并检查它们是否与另一个表匹配
【发布时间】:2014-12-10 14:21:18
【问题描述】:

我有两个表,我想从第一个表中获取所有实体,然后检查它们是否可以与另一个表中的特定实体相关。如果它们可以关联,则数据库返回 1(或 true),否则返回 NULL(或 false)。

我尝试了一些使用 LEFT JOIN 的方法,但它们都不起作用。我认为解决方案很简单,但我无法弄清楚......

上下文: 在我的应用程序中,我提出了两个请求,第一个请求从 oneTable 中获取所有实体,第二个请求从 anotherTable 中获取所有 idOT,其中 idAT 等于 2,然后,我创建一个循环我保存第一个请求中的所有实体,并在这个循环中创建另一个循环,检查当前元素是否存在于第二个请求中。我认为他们的这个解决方案很繁重(两个请求和重叠的循环),所以我尝试直接在一个请求中完成。

感谢你们的帮助!我希望它不会让你浪费时间......

编辑: @Strawberry 在 cmets 中给了我答案,我在做

SELECT * FROM oneTable LEFT JOIN anotherTable ON oneTable.idOT = anotherTable.idOT **WHERE** anotherTable.idAT = 2

而不是

SELECT * FROM oneTable LEFT JOIN anotherTable ON oneTable.idOT = anotherTable.idOT **AND** anotherTable.idAT = 2 

就这么简单......再次感谢你们。

【问题讨论】:

  • 我们可以看到您尝试左连接吗?如果我们关心浪费时间,我们可能不会在这里;-)
  • 类似的东西:SELECT * FROM oneTable LEFT JOIN anotherTable ON oneTable.idOT = anotherTable.idOT WHERE anotherTable.idAT = 2。但我需要 oneTable 中的所有实体...
  • 谢谢@Strawberry 我知道这很简单(我以为我已经尝试过了,但显然没有^^)。也感谢安德鲁的帮助。我觉得很菜鸟...

标签: mysql sql select phpmyadmin


【解决方案1】:

感谢问题的cmets,正确的请求是:

SELECT * FROM oneTable
LEFT JOIN anotherTable ON oneTable.idOT = anotherTable.idOT
AND anotherTable.idAT = 2;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2022-11-28
    相关资源
    最近更新 更多