Sql 食物选择查询
我有一个餐桌上的食物,它有以下限制Sql 食物选择查询,sql,database,oracle-sqldeveloper,Sql,Database,Oracle Sqldeveloper,我有一个餐桌上的食物,它有以下限制 Food Name(which has the dish name) category (cuisine name) DeskNo(The table that it is placed on) Food: Name Category Deskno pasta Mexican 1 noodles Chines 1 friedrice Chinese 2
Food
Name(which has the dish name)
category (cuisine name)
DeskNo(The table that it is placed on)
Food:
Name Category Deskno
pasta Mexican 1
noodles Chines 1
friedrice Chinese 2
Tamarindrice Indian 2
我有一张和你一起的桌子
ThroughAway
category1
category2
ThrowAway
Category1 Category2
Indian Chinese
Mexican Indian
如果category1和category2放在同一张桌子上,那么这些盘子将被扔掉。
我需要输出在同一个桌面上的盘子的名称No,这样就有可能两者都会被丢弃。需要帮忙吗
select f1.name, f2.name from ThrowAway t
inner join Food f1 on f1.Category = t.Category1
inner join Food f2 on f2.Category = t.Category2
where f1.deskno = f2.deskno
但是你不应该像那样加入varchar或smth,这是一个非常糟糕的做法。
添加ID、索引并加入它们。尝试此查询
SELECT Distinct a.Name AS Dish1, b.Name As Dish2
FROM Food a, Food b, ThroughAway c
WHERE a.Name <> b.Name AND a.Deskno = b.deskno AND
(a.category = c.category1 AND c.category2 = b.category) ;
选择不同的a.名称作为Dish1,b.名称作为Dish2
从食物a到食物b再到食物c
其中a.Name b.Name和a.Deskno=b.Deskno和
(a.类别=c.类别1和c.类别2=b.类别);
一个自动连接,用于比较同一张桌子和一次性桌子上的盘子
拨弄
食物
名称(其中包含菜名)
类别(菜名)
DeskNo(放置它的表)
食物:
名称类别桌面编号
墨西哥面食1
中国面条1
弗里德里斯中文2
Tamarindrice Indian 2你能提供几行样本数据和查询所需的输出吗?如果印度-中国的菜肴组合出现在同一张桌子上,那么就扔掉这道菜。我需要一些帮助来编写这个方法的查询。我犯了一个错误,在我的查询中只选择了一个名称,我得到了部分输出。现在可以了,谢谢如果您需要可能发生抛掷的桌子号码,请尝试上面的方法。
SELECT FOOD.DESKNO
FROM FOOD INNER JOIN
THROW ON FOOD.CATEGORY = THROW.CAT1 INNER JOIN
THROW AS THROW_1 ON FOOD.CATEGORY = THROW_1.CAT2