坚持使用mysql查询和连接
我有两张桌子。在表1中有坚持使用mysql查询和连接,mysql,join,Mysql,Join,我有两张桌子。在表1中有IDotac和IDmajka和IDgolub。我需要从表#2中找到与表#1中的3个字段匹配的brojgoluba 例如,在表#1id=28中 (表1)IDgolub=1,(表2)brojgoluba=06557-07-681 (表1)IDmajka=3,(表2)brojgoluba=2081-01-271 (表1)IDotac=2,(表2)brojgoluba=07216-05-552 SELECT Otac.brojgoluba AS o_brojgo
IDotac
和IDmajka
和IDgolub
。我需要从表#2中找到与表#1中的3个字段匹配的brojgoluba
例如,在表#1id=28中
(表1)IDgolub=1,(表2)brojgoluba=06557-07-681
(表1)IDmajka=3,(表2)brojgoluba=2081-01-271
(表1)IDotac=2,(表2)brojgoluba=07216-05-552
SELECT
Otac.brojgoluba AS o_brojgoluba,
Majka.brojgoluba AS m_brojgoluba,
mg_golub.ID
FROM mg_golub
LEFT JOIN mg_popis_golubova AS Otac ON (Otac.IDotac=mg_golub.ID)
LEFT JOIN mg_popis_golubova AS Majka ON (Majka.IDmajka=mg_golub.ID)
WHERE mg_popis_golubova.IDkorisnik='$ID_KORISNIK'
表1
表2
注意:这里的问题是,在表2中,我必须选择除
brojgoluba
之外的更多信息,并且表2中有一些字段链接到其他表中您似乎正在找到答案的路上。是这个吗
SELECT ID, brojgoluba FROM
table1, table2
WHERE
table1.Idkorystnik=1 AND table2.Idkorystnik=1 AND
(table1.IDgolub=table2.ID OR
table1.IDMajka=table2.ID OR
table1.IDotak=table2.id)
SELECT Otac.brojgoluba AS o_brojgoluba,
Majka.brojgoluba AS m_brojgoluba,
Dotac.brojgoluba as d_brojgoluba,
mg_golub.ID
FROM mg_golub LEFT JOIN
mg_popis_golubova Otac
ON (Otac.IDotac=mg_golub.ID) LEFT JOIN
mg_popis_golubova Majka
ON (Majka.IDmajka=mg_golub.ID) LEFT JOIN
mg_popis_golubova Dotac
on (Dotac.IDmajka=mg_dotac.ID)
WHERE mg_popis_golubova.IDkorisnik='$ID_KORISNIK'
或者,您可能希望通过where
子句筛选所有匹配的表。您应该在on
子句中执行此操作,这样就不会丢失任何行:
SELECT Otac.brojgoluba AS o_brojgoluba,
Majka.brojgoluba AS m_brojgoluba,
Dotac.brojgoluba as d_brojgoluba,
mg_golub.ID
FROM mg_golub LEFT JOIN
mg_popis_golubova Otac
ON Otac.IDotac=mg_golub.ID and and Otac.IDkorisnik='$ID_KORISNIK' LEFT JOIN
mg_popis_golubova Majka
ON Majka.IDmajka=mg_golub.ID and Majka.IDkorisnik='$ID_KORISNIK' LEFT JOIN
mg_popis_golubova Dotac
on Dotac.IDmajka=mg_dotac.ID and Dotac.IDkorisnik='$ID_KORISNIK'
我听不懂你的问题-你能试着改写一下吗?现在好多了?如果不是,我会尝试完全更改它,我认为这是不对的,因为mg_popis_golubova=Otac,它不能从mg_popis_golubova获取brojgoluba,因为我没有任何名为brojgoluba的字段,这不是我需要的