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

时间:2016-10-27 13:52:46

标签: mysql

如果table1中具有相同标识符且列名不同的列在特定字段中具有table2,则需要从1返回一列。

表1

table1

表2

table2

在此示例中,我想从item_code 222 table1 alt1中检索888 alt1,但仅当1为{ {1}} item中的table2 {/}}。{/}

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

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

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

3 个答案:

答案 0 :(得分:5)

试试这个

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

希望这有效。

答案 1 :(得分:3)

您可以使用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

答案 2 :(得分:2)

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