对于你的大师来说,这可能很容易。
我试图从两张桌子中获取*。
第一张表我可以与user_id匹配。结构如下:
table name: order_new
id | service_id | user_id | total_price | total_price_tax | orderstatus | notes | orderdate
table name 2: order_new_items
id | id_order | name | qty | price
我可以使用会话ID获得第一个表(order_new)。第一个表有一行名为“id”。该id在“id_order”行下的表2(order_new_items)中有项目。
我不确定如何加入这两个并从两个表中提取匹配来自第一个表的id和来自第二个表的id_order的所有数据
答案 0 :(得分:1)
SELECT * FROM order_new, order_new_items where order_new.id = order_new_items.id and order_new.id = 4711
这将检索bot表中存在ID的所有行。当order_new
中没有相应的行(即空订单)时,它将不检索表order_new_items
中的行
要实现这一目标,您需要使用:
SELECT * FROM order_new
LEFT JOIN order_new_items on order_new.id = order_new_items.id
where order_new.id = 4711
可能您需要明确列出列而不是*
答案 1 :(得分:0)
的MySQL,只有:
SELECT * FROM order_new o, order_new_items i WHERE user_id = '7' AND o.id_order = i.id;
我假设,order_new中的id
是表的主键,而id_order
是1:n关系的外键。
需要注意的是,7是一个当然的例子,需要用您正在寻找的任何值代替。
根据评论,我回答了另一个问题:
$result = mysql_query("SELECT * FROM order_new WHERE user_id = 7");
while ($row = mysql_fetch_array($result)) {
//store order information
$res2 = mysql_query("SELECT * FROM order_new_items WHERE id_order = $row[id]");
while($row2 = mysql_fetch_array($res2)) {
//store further information
}
}
答案 2 :(得分:0)
试试这个,这将根据条件从两个表中获取数据。
SELECT a*, b.id, b.name, b.qty, b.price FROM order_new a
INNER JOIN order_new_items b on b.id_order = a.id
WHERE a.id = 100