mysql AND vs JOIN输出重复项

时间:2016-04-02 16:28:28

标签: php mysql

我对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'

有人能解释一下这种行为吗?

1 个答案:

答案 0 :(得分:1)

尝试使用INNER JOIN:

delivery_day