MySQL:多个表(一次所有列,三次仅一列)


MySQL: Multiple tables (one time all columns, three times only a single column)

$sql = 'SELECT * 
        FROM table_all ta
        INNER JOIN table11 ta11 
        ON ta11.column1 = ta.column1
        INNER JOIN table12 ta12
        ON ta12.column2 = ta.column2
        INNER JOIN table13 ta13
        ON ta13.column3 = ta.column3';

这是我目前正在处理的PHP程序的sql语句。它实际上工作正常,但我对这个陈述的结果不满意。有就好了

  1. 只有table_all的内容,然后
  2. 只有其他三个表(表 11、表12、表13(的三列。

星号在这方面会产生一些问题。

  • table_all的长度未知。它能够改变大小。

我尝试了联合多项选择,但只收到错误。如何处理这样的问题?

您可以尝试指定要获取的列。
如您所见,星号返回所有列。
你应该使用类似的东西:

$sql = 'SELECT ta11.column1, taa12.column2, ta13.column13 
    FROM table_all ta
    INNER JOIN table11 ta11 
    ON ta11.column1 = ta.column1
    INNER JOIN table12 ta12
    ON ta12.column2 = ta.column2
    INNER JOIN table13 ta13
    ON ta13.column3 = ta.column3';

我认为获得ta11.column1taa12.column2ta13.column13没有意义,因为这些字段已经在table_all中(您在 Join 中使用这些列(。但是,您可以通过这种方式选择所需的任何列。