[英]mysql, joining 2 tables, and checking for 2 conditions
的MySQL
表格1:
+--------+------+
| listid | type |
+--------+------+
| 1 | a |
+--------+------+
| 2 | a |
+--------+------+
| 3 | b |
+--------+------+
表2:
+----+--------+------+
| id | listid | code |
+----+--------+------+
| 1 | 1 | ax |
+----+--------+------+
| 2 | 1 | bx |
+----+--------+------+
| 3 | 2 | ax |
+----+--------+------+
| 4 | 2 | bx |
+----+--------+------+
| 5 | 2 | cx |
+----+--------+------+
| 6 | 3 | ax |
+----+--------+------+
| 7 | 3 | bx |
+----+--------+------+
任务
在一个查询中,我要检查是否:
1)在表table2中,仅将“ ax”和“ bx”列为代码
2)我在1)中获得的listid的类型在表table1中为“ a”
的PHP
$a = mysql_query("SELECT t1.listid FROM table1 AS t1, table2 AS t2......");
$b = mysql_fetch_assoc($a);
if($b['listid'])
{
echo $b['listid'];
}
else
{
echo 'nothing found';
}
输出量
listid = 1
listid = 2为false,因为table2中还包含“ cx”
listid = 3为假,因为它在表1中具有类型“ b”
我希望这是有道理的 :)
SELECT t1.listid
FROM t1
WHERE type = 'a'
AND id NOT IN
(
SELECT listid
FROM t2
WHERE code NOT IN ('ax', 'bx')
)
这也将匹配来自t1
记录,这些记录在t2
中根本没有对应的记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.