我有一个SQL命令,我知道数据存在于条件中,但是当我运行查询时它不会返回行:
SQL:
SELECT `USER_ID`, `CAR_ID`, `AD_ID`, `BRAND`, `MODEL`
, `YEAR`, `PRICE`, `MILEAGE`, `GEARBOX`, `STATUS`, `COLOR_IN`, `COLOR_OUT`
, `BODY`, `FUEL`, `ABOUT`, `MAIN_PHOTO`
FROM (`ads`, `cars`, `ad_extras`)
WHERE `ads`.`USER_ID` = '2'
我该怎么办?
修改
当我SELECT *
时,它也不会返回数据。
当我从2个表中选择时,它会保留数据。所以我不能从3个表中选择对吗?
答案 0 :(得分:2)
你的一张桌子是空的,这很像。结果是空的。你应该使用像这样的查询
SELECT `USER_ID`, `CAR_ID`, `AD_ID`, `BRAND`, `MODEL`, `YEAR`, `PRICE`, `MILEAGE`, `GEARBOX`, `STATUS`, `COLOR_IN`, `COLOR_OUT`, `BODY`, `FUEL`, `ABOUT`, `MAIN_PHOTO` FROM `ads` natural left join `cars` natural left join `ad_extras` WHERE `ads`.`USER_ID` = '2'
我想发布这个评论,但我没有特权。
答案 1 :(得分:0)
为了从3表中查询,最好在它们之间使用JOIN
子句
或者如果你想写它,因为它是使用别名来选择列
e.g
SELECT 'ads.USER_ID', 'cars.CAR_ID', 'ads.AD_ID'
FROM ('ads', 'cars', 'ad_extras')
WHERE 'ads'.'USER_ID' = '2'
与他们各自的表