Php 在MySQL查询中检查两个表

Php 在MySQL查询中检查两个表,php,mysql,database,data-structures,Php,Mysql,Database,Data Structures,我觉得我在写一个单词问题,但它真的让我困惑,我真的希望这里的人能解决它: 我想从表A中选择一行。表A包括属性名称和编号。但在完成查询之前,我想对照表B检查它。表B包括用户的名称、编号和用户名。 根据用户的输入,它在表B中插入包含用户名以及名称和编号的行。 现在,在我的查询中,我从表a中选择了一行,我想确保表B中没有与该特定用户的名称和编号匹配的行 我已经试过了,其中A.Name=B.Name和A.Number=B.Number和B.Username!='$用户名“但我觉得我有点不对劲。 任何帮助

我觉得我在写一个单词问题,但它真的让我困惑,我真的希望这里的人能解决它:

我想从表A中选择一行。表A包括属性名称和编号。但在完成查询之前,我想对照表B检查它。表B包括用户的名称、编号和用户名。 根据用户的输入,它在表B中插入包含用户名以及名称和编号的行。 现在,在我的查询中,我从表a中选择了一行,我想确保表B中没有与该特定用户的名称和编号匹配的行

我已经试过了,其中A.Name=B.Name和A.Number=B.Number和B.Username!='$用户名“但我觉得我有点不对劲。

任何帮助都是。。。太棒了。

这还不够。。。请看,表B中有些行包含用户名,但我要查找的是不包含用户名的行。可能会有像Robert-1-apple和Robert-2-apple和Robert-1-bravo,但我需要的是Robert-1-charlie…然后还要添加B。用户名改为空。我不太清楚你想要什么。A是否也有用户名列?你想要达到的目的是什么?A没有用户名栏,只有与B匹配的名称和数字。我仍然很困惑。我需要先了解更多关于连接的信息。。。我的问题是,我已经在检查同一查询中的一些其他因素。。。也就是说,如果A.value>10,那么左外部联接将获得A上所有在B name和number上没有匹配的name/number组合的行,也就是说!。之后,您应该能够随心所欲地处理这些值。虽然不是100%确定用户名是否适合你,但这不太合适。。。请看,表B中有些行包含用户名,但我要查找的是不包含用户名的行。可能会有像Robert-1-apple和Robert-2-apple和Robert-1-bravo,但我需要的是Robert-1-charlie…然后还要添加B。用户名改为空。我不太清楚你想要什么。A是否也有用户名列?你想要达到的目的是什么?A没有用户名栏,只有与B匹配的名称和数字。我仍然很困惑。我需要先了解更多关于连接的信息。。。我的问题是,我已经在检查同一查询中的一些其他因素。。。也就是说,如果A.value>10,那么左外部联接将获得A上所有在B name和number上没有匹配的name/number组合的行,也就是说!。之后,您应该能够随心所欲地处理这些值。但是,不能100%确定用户名是否适合您过去曾为我工作过,我认为两者都很好在过去对我有效,我认为两者都很好。这看起来可能会有帮助。。。你能解释一下代码吗?这个简单的方法是从a中选择a.id,其中a.name=:name测试了表b中现有的此用户:不存在从b中选择1,其中b.id=a.id和b.name=a.name谢谢。我没有完全使用这段代码,但我正在寻找的命令是“不存在”。我不知道,但它确实有帮助。这看起来可能会有帮助。。。你能解释一下代码吗?这个简单的方法是从a中选择a.id,其中a.name=:name测试了表b中现有的此用户:不存在从b中选择1,其中b.id=a.id和b.name=a.name谢谢。我没有完全使用这段代码,但我正在寻找的命令是“不存在”。我不知道这件事,但它确实有帮助。
SELECT
   A.id
FROM
   A
   LEFT OUTER JOIN B ON
      (A.Name = B.Name AND A.Number = B.Number)
WHERE
   B.Name IS NULL
   AND B.Number IS NULL
   AND B.Username = ?
  IF NOT EXISTS  ( SELECT 1 
       FROM tableA a
       INNER JOIN tableB b
       ON a.name = b.name
       AND a.number= b.number
       AND b.UserName = 'user' and b.name = 'name'and b.number = 'number')
  SELECT *
  FROM tableA x
  WHERE x.name = 'name'and x.number = 'number'
select a.id
from a
where
a.name=:name
and
not exists(select 1 from b where b.id=a.id and b.name=a.name)