MySql SELECT 来自 table1 如果 table2 中的列 = 1
MySql SELECT from table1 if column in table2 = 1
我需要 return 来自 table1
的列,如果 table2
中的列具有相同的标识符但列名不同,而 1
特定领域。
表1
table2
在此示例中,我想从 table1
中检索 item_code
222
,其中 alt1
是 888
,但前提是 alt1
是 1
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
?
我需要 return 来自 table1
的列,如果 table2
中的列具有相同的标识符但列名不同,而 1
特定领域。
表1
table2
在此示例中,我想从 table1
中检索 item_code
222
,其中 alt1
是 888
,但前提是 alt1
是 1
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
?