簡體   English   中英

在PHP中,如何使用跨不同表的多個“ IN”語句查詢mySQL數據庫?

[英]In PHP, how do I query a mySQL database using multiple “IN” statements across different tables?

我試圖弄清楚如何有兩個“ IN”語句。

盡管我不知道如何使用兩個嵌套的select語句,但我正在嘗試獲得類似的內容。

$query_row=mysql_query(
    "SELECT DISTINCT * FROM table_a WHERE field_1 IN 
        (SELECT field_1 FROM table_b WHERE field_2 = $field_2), 
        (SELECT field_3 FROM table_c WHERE field_4 = $field_4)
        ORDER BY field_5 DESC
        ");

如果我刪除(SELECT...位)之一,它是有效的,但嘗試將它們都放不下。

表a在表B和C中具有匹配的值:分別為字段2和4。

我該如何工作?

取決於您是否要測試IN中的一個還是兩個:

WHERE field_1 IN (SELECT field_1 FROM table_b WHERE field_2 = $field_2) AND/OR field_1 IN (SELECT field_3 FROM table_c WHERE field_4 = $field_4) ...

您可以嘗試使用UNION:

SELECT DISTINCT * 
    FROM table_a 
    WHERE field_1 IN (SELECT field_1 FROM table_b WHERE field_2 = $field_2 
                      UNION 
                      SELECT field_3 FROM table_c WHERE field_4 = $field_4)
    ORDER BY field_5 DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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