簡體   English   中英

mysql查詢-僅從另一個表中選擇id = id,而該表中的字段=值

[英]mysql query - only select where id = id from another table and a field in that table = a value

我的標題可能無法解釋我在尋找什么,這是我當前查詢的為商店購買產品的信息:

mysql_query("SELECT * FROM Items 
             WHERE ((Items.menu_id='$menu_id' AND Items.status='1') 
                   $colour_sql) 
             $order_sql 
             LIMIT $lim_from,$limit_per_page");

它說$ colour_sql的部分我想要的東西說:

AND (Items.id=colour.product_id AND colour.colour='pink')

因此,它僅顯示粉紅色的產品,並且顏色在單獨的表格中。 我一直在尋找答案,但似乎找不到一個能說明我情況的答案,也許是因為我不知道自己到底在找什么,感謝您的幫助。

如果要使用表格colour進行聯接,則需要進行聯接或子選擇。

加入

$menu_id = mysql_real_escape_string($menu_id);
mysql_query = "SELECT i.* 
  FROM items i
  INNER JOIN colour c ON (c.product_id = i.id)
  WHERE i.menu_id = '$menu_id' 
    AND i.status = '1'
    AND c.colour = 'pink'
  ORDER BY .....
  LIMIT {intval($limit_per_page)} OFFSET {intval($lim_from)} ";

子選擇

$menu_id = mysql_real_escape_string($menu_id);
mysql_query = "SELECT i.* 
  FROM items i
  WHERE i.menu_id = '$menu_id' 
    AND i.status = '1'
    AND i.id IN (SELECT c.product_id FROM colour c WHERE c.colour = 'pink')
  ORDER BY .....
  LIMIT {intval($limit_per_page)} OFFSET {intval($lim_from)} ";

也許是內部聯接?

[...]
FROM Items
INNER JOIN colour
ON colour.id = Items.colour_id
WHERE [blablabla]
AND colour.colour = 'pink'

您需要將顏色表添加到查詢中:

FROM Items,colour

要么

From Items INNER JOIN colour ON Items.id = colour.product_id

但是我觀察到您的顏色表中有product_id。 為什么不在Items表中做相反的操作,添加顏色ID。

暫無
暫無

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

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