SELECT first_name,last_name,IFNULL(state_table.state_name,"replace string") FROM doctor_table left join state_table on state=state.id
我们可以使用sql select查询而不是字符串_“replace_string”_?
答案 0 :(得分:0)
尝试联合所有
SELECT first_name,last_name, state_table.state_name
FROM doctor_table left join state_table on state=state.id
WHERE state_table.state_name <> NULL
UNION ALL
SELECT first_name,last_name, "replace_string" as state_name
FROM doctor_table left join state_table on state=state.id
WHERE state_table.state_name == NULL
答案 1 :(得分:0)
您可以使用IFNULL
SELECT first_name, last_name,
IFNULL(state_table.state_name,(SELECT some_value FROM some_table WHERE id=some_key))
FROM doctor_table
LEFT JOIN state_table on state=state.id
您需要确保您的子选择返回1个值,否则整个查询将失败。
这是一个sqlfiddle的想法。
答案 2 :(得分:0)
你可以这样做
SELECT first_name,last_name,
IFNULL(state_table.state_name,(SELECT `name` FROM table WHERE Id='something' LIMIT 1)) as something
FROM doctor_table left join state_table on state=state.id
答案 3 :(得分:0)
我不确定是否有任何特定于mysql的怪癖,但是在t-sql中你可以在ISNULL中使用嵌套的select语句,但它不会产生特别有效的查询。
通过在首选表上进行外连接,然后在调用ISNULL时使用所需的列作为第二个参数,可以获得更好的性能。