mysql查询 - 只能选择id = id从另一个表和该表中的字段=值
问题描述:
我的标题可能无法解释我在找什么,这是我当前查询拉入商店的产品:mysql查询 - 只能选择id = id从另一个表和该表中的字段=值
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)} ";
你应该使用mysql加入。 – Robot