![](/img/trans.png)
[英]MySQL - How to select rows in a table where id value is in a comma delimited field in another table?
[英]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.