我对sql语句没有多少经验,所以如果您可以查看下面的设置并让我知道编写SELECT语句的最佳方法,我将不胜感激。我有多个表,我查询但由于一些奇怪的原因,我得到的结果是重复的。 table_1是主表,我使用它的fk来引用其他表pk。在我的SELECT语句中,我正在寻找一种基于fk值加入所有表格的方法(' item_b_value')
table_1
item_a pk
item_b fk
CONSTRAINT fk_table_2_b FOREIGN KEY REFERENCES table_2(item_b)
CONSTRAINT fk_table_3_b FOREIGN KEY REFERENCES table_3(item_b)
CONSTRAINT fk_table_4_b FOREIGN KEY REFERENCES table_4(item_b)
table_2
item_c
item_b pk
table_3
item_e
item_b pk
table_4
item_n
item_b pk
此SELECT语句输出重复,不知道原因
SELECT table_1.*, table_2.item_c, table_3.item_e, table_4.item_n
FROM table_1, table_2, table_3, table_4
WHERE table_1.item_b=table_2.item_b=table_3.item_b=table_4.item_b = 'item_b_value'
但是,如果我在WHERE中的每个值之间放置AND,则重复项会消失。
WHERE table_1.item_b= 'item_b_value',
AND table_2.item_b= 'item_b_value',
AND table_3.item_b= 'item_b_value',
AND table_4.item_b= 'item_b_value'
有人能解释一下这种行为吗?
答案 0 :(得分:1)
尝试使用INNER JOIN:
delivery_day