簡體   English   中英

mysql,加入2個表,並檢查2個條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM