查找此查询:
SELECT *
FROM usre u, item i
WHERE u.user_id = ... AND i.item_id = ....
我想做这样的查询,但我将我的项目分成两个表格!
这意味着我想写(OR
) - >喜欢这个查询:
SELECT
*
FROM
usre u, drink d OR food f
WHERE
u.user_id =**
AND d.drink_id =**
OR f.food_id =**
这个查询是真的吗?或者我提出两个问题以及如何查询?
答案 0 :(得分:0)
所以,如果我理解正确,你想要在一张桌子中得到两张桌子(饮料和食物)的数据吗?
如果这是重点,查询应如下所示:
SELECT * FROM user u
INNER JOIN drink d ON u.user_id = d.user_id
INNER JOIN food f ON u.user_id = f.user_id;
d.user_id
和f.user_id
是外键。
如果您仍然有问题描述表格,或者如果您有其他意思,请指明问题。
答案 1 :(得分:0)
那不应该工作。 ' OR'声明要求左侧为布尔值并强制转换为False才能评估右侧的语句。您正在寻找的是' union',您可以使用它将一个表的结果与其他表的结果合并。请注意,从一个表中提取的列类型也必须与其他表列类型匹配。
不过,我还认为你用错误的方式构建了数据库。为什么在不同的餐桌上有饮料和食物?是的,它们可以有一些独特的特性,但为了简单起见,您可以将所有内容放在一个表中,如:价格,成分,成本等。答案 2 :(得分:0)
SELECT *
FROM user u
INNER JOIN drink d on d.user_id = u.id
INNER JOIN food f on f.user_id = u.id
这里我假设User表有主键ID,Drink和Food表有一个外键'user_id'