MySql SELECT 来自 table1 如果 table2 中的列 = 1

MySql SELECT from table1 if column in table2 = 1

我需要 return 来自 table1 的列,如果 table2 中的列具有相同的标识符但列名不同,而 1特定领域。

表1

table2

在此示例中,我想从 table1 中检索 item_code 222,其中 alt1888,但前提是 alt11 for item in table2.

我尝试了很多内联查询和 LEFT JOIN 变体,但似乎没有任何东西能够真正执行任务。写出我尝试过的所有版本是没有意义的,因为其中 none 有效,但一个例子是:

SELECT item_code FROM table1 WHERE alt1 = "888" 
AND (SELECT item FROM table2 WHERE item = "222" AND alt1 = 1)

以上可能不是我尝试过的最好的例子,但由于 none 目前为止它们都有效,所以这并不重要。非常感谢任何帮助。

您可以使用 JOIN 子句:

SELECT t1.item_code 
FROM table1 t1
JOIN table2 t2 ON t1.item_code = t2.item AND t2.alt1 = 1
WHERE t1.alt = 888

试试这个

SELECT item_code from table1 INNER JOIN 
table2
ON table1.item_code = table2.item where table2.alt1 = 1 and table1.alt1 = 888

希望这有效。

SELECT item_code FROM table1 t1 JOIN table2 t2 
       ON t1.item_code = t2.item_code
WHERE t1.alt1 = "888" AND t2.alt1 = 1

?